<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Bomberman:  Fichier source de /home/ph3w/Bureau/lif7-bomberman/partie.cpp</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Généré par Doxygen 1.7.1 -->
<script type="text/javascript">
function hasClass(ele,cls) {
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
  if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
  if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}

function toggleVisibility(linkObj) {
 var base = linkObj.getAttribute('id');
 var summary = document.getElementById(base + '-summary');
 var content = document.getElementById(base + '-content');
 var trigger = document.getElementById(base + '-trigger');
 if ( hasClass(linkObj,'closed') ) {
   summary.style.display = 'none';
   content.style.display = 'block';
   trigger.src = 'open.png';
   removeClass(linkObj,'closed');
   addClass(linkObj,'opened');
 } else if ( hasClass(linkObj,'opened') ) {
   summary.style.display = 'block';
   content.style.display = 'none';
   trigger.src = 'closed.png';
   removeClass(linkObj,'opened');
   addClass(linkObj,'closed');
 }
 return false;
}
</script>
<div class="header">
  <div class="headertitle">
<h1>/home/ph3w/Bureau/lif7-bomberman/partie.cpp</h1>  </div>
</div>
<div class="contents">
<a href="partie_8cpp.html">Aller à la documentation de ce fichier.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="partie_8h.html">partie.h</a>&quot;</span>
<a name="l00002"></a>00002 <span class="preprocessor">#include &quot;<a class="code" href="debug_8h.html">debug.h</a>&quot;</span>
<a name="l00003"></a>00003 
<a name="l00004"></a><a class="code" href="partie_8cpp.html#ad453f9f71ce1f9153fb748d6bb25e454">00004</a> <span class="keyword">typedef</span> <a class="code" href="map_8cpp.html#ad453f9f71ce1f9153fb748d6bb25e454">std::string</a> string;
<a name="l00005"></a>00005 
<a name="l00006"></a>00006 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00007"></a>00007 <span class="comment">* @fn partie::partie()</span>
<a name="l00008"></a>00008 <span class="comment">* @brief Initialise la class partie</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">* Pas de new ici</span>
<a name="l00011"></a>00011 <span class="comment">*/</span>
<a name="l00012"></a><a class="code" href="classpartie.html#a8c7990dc4fb36412a4c198b4cde49e64">00012</a> <a class="code" href="classpartie.html#a8c7990dc4fb36412a4c198b4cde49e64" title="Initialise la class partie.">partie::partie</a>()
<a name="l00013"></a>00013 {
<a name="l00014"></a>00014     <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> = CNX_None;
<a name="l00015"></a>00015     <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> = 0;
<a name="l00016"></a>00016     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a> = 0;
<a name="l00017"></a>00017     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a> = 0;
<a name="l00018"></a>00018 
<a name="l00019"></a>00019     <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a> = 0;
<a name="l00020"></a>00020     <span class="comment">//c_client = 0;// &lt;- Pas besoin ( union )</span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022     <span class="comment">// On vide le buffer</span>
<a name="l00023"></a>00023     memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>+1);
<a name="l00024"></a>00024 }
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00028"></a>00028 <span class="comment">* @fn partie::~partie()</span>
<a name="l00029"></a>00029 <span class="comment">* @brief Désinitialise la class partie et supprime tous les joueurs et la map</span>
<a name="l00030"></a>00030 <span class="comment">*/</span>
<a name="l00031"></a><a class="code" href="classpartie.html#a92c9aec35b42ad592f00be8a0772888a">00031</a> <a class="code" href="classpartie.html#a92c9aec35b42ad592f00be8a0772888a" title="Désinitialise la class partie et supprime tous les joueurs et la map.">partie::~partie</a>()
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a> )
<a name="l00034"></a>00034         <span class="keyword">delete</span>[] <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>;
<a name="l00035"></a>00035 
<a name="l00036"></a>00036     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a> )
<a name="l00037"></a>00037         <span class="keyword">delete</span> <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>;
<a name="l00038"></a>00038 
<a name="l00039"></a>00039     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a> = 0;
<a name="l00040"></a>00040     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a> = 0;
<a name="l00041"></a>00041 
<a name="l00042"></a>00042     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a07002cd38b9e91b9cc306606db34c632">CNX_Host</a> &amp;&amp; <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a> ){
<a name="l00043"></a>00043         <span class="keyword">delete</span> <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>;
<a name="l00044"></a>00044         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a> = 0;
<a name="l00045"></a>00045     }
<a name="l00046"></a>00046 
<a name="l00047"></a>00047     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a44308fb32a7a5f92c250894c660caf3b">CNX_Client</a> &amp;&amp; <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a> ){
<a name="l00048"></a>00048         <span class="keyword">delete</span> <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>;
<a name="l00049"></a>00049         <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a> = 0;
<a name="l00050"></a>00050     }
<a name="l00051"></a>00051 }
<a name="l00052"></a>00052 
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00055"></a>00055 <span class="comment">* @fn void partie::genMap()</span>
<a name="l00056"></a>00056 <span class="comment">* @brief Charge une map</span>
<a name="l00057"></a>00057 <span class="comment">*</span>
<a name="l00058"></a>00058 <span class="comment">* S&#39;il existe déjà une map -&gt; On vire l&#39;ancienne map&lt;br /&gt;</span>
<a name="l00059"></a>00059 <span class="comment">* Après avoir chargé la map, la fonction positionne les joueurs&lt;br /&gt;</span>
<a name="l00060"></a>00060 <span class="comment">* &lt;b&gt;/!\\ Initialiser les perso en 1er !!! /!\&lt;/b&gt;</span>
<a name="l00061"></a>00061 <span class="comment">*/</span>
<a name="l00062"></a><a class="code" href="classpartie.html#adea76917bafe42b34b4fefae60c965d8">00062</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#adea76917bafe42b34b4fefae60c965d8" title="Charge une map.">partie::genMap</a>()
<a name="l00063"></a>00063 {
<a name="l00064"></a>00064     <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> || !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a> )
<a name="l00065"></a>00065         stdErrorE(<span class="stringliteral">&quot;Initialiser les perso avant la map !!! c_nb_joueurs(%u) c_joueurs(%u)&quot;</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)<a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>);
<a name="l00066"></a>00066 
<a name="l00067"></a>00067     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a> )
<a name="l00068"></a>00068         <span class="keyword">delete</span> <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>;
<a name="l00069"></a>00069     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a> = <span class="keyword">new</span> <a class="code" href="classmap.html" title="Gère une map.">map</a>();
<a name="l00070"></a>00070     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5aec3f3890ccd081364731383bbb77c3" title="Charge une map en mémoire.">chargerMap</a>();
<a name="l00071"></a>00071 
<a name="l00072"></a>00072     <a class="code" href="structs___coordonnees.html" title="struct de coordonnées ( x,y )">s_Coordonnees</a> p;
<a name="l00073"></a>00073     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> i=0; i&lt;c_nb_joueurs; i++ )
<a name="l00074"></a>00074     {
<a name="l00075"></a>00075         <span class="keywordflow">if</span>( c_joueurs[i].isLocal() || (!c_joueurs[i].isLocal() &amp;&amp; c_joueurs[i].socket() != INVALID_SOCKET) ){
<a name="l00076"></a>00076             p = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5de5675c9ac5f63b57bf05b355942caa" title="Met le perso {joueur} a sa place initial.">mettreJoueurA_sa_PositionInitial</a>( i+1 );
<a name="l00077"></a>00077             c_joueurs[i].defPos(p.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, p.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>);
<a name="l00078"></a>00078         }
<a name="l00079"></a>00079     }
<a name="l00080"></a>00080 }
<a name="l00081"></a>00081 
<a name="l00082"></a>00082 
<a name="l00083"></a>00083 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00084"></a>00084 <span class="comment">* @fn void partie::def_nbJoueurs( unsigned char nb )</span>
<a name="l00085"></a>00085 <span class="comment">* @brief Definie le nombre de joueur.</span>
<a name="l00086"></a>00086 <span class="comment">*</span>
<a name="l00087"></a>00087 <span class="comment">* S&#39;il existe déjà des joueurs -&gt; On vire les anciens joueurs</span>
<a name="l00088"></a>00088 <span class="comment">*/</span>
<a name="l00089"></a><a class="code" href="classpartie.html#a2003f42af8a8c3f3038e0707ca966821">00089</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#a2003f42af8a8c3f3038e0707ca966821" title="Definie le nombre de joueur.">partie::def_nbJoueurs</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nb )
<a name="l00090"></a>00090 {
<a name="l00091"></a>00091     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a> ){
<a name="l00092"></a>00092         <span class="comment">//stdError(&quot;c_nb_joueurs(%u), c_joueurs(%X)&quot;, (unsigned int)c_nb_joueurs, (unsigned int)c_joueurs);</span>
<a name="l00093"></a>00093         <span class="keyword">delete</span>[] <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>;
<a name="l00094"></a>00094     }
<a name="l00095"></a>00095     <span class="keywordflow">if</span>( !nb )
<a name="l00096"></a>00096         stdErrorE(<span class="stringliteral">&quot;def_nbJoueurs(0) Interdit !&quot;</span>);
<a name="l00097"></a>00097 
<a name="l00098"></a>00098     <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> = nb;
<a name="l00099"></a>00099     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a> = <span class="keyword">new</span> <a class="code" href="classperso.html" title="Gère un personnage.">perso</a>[nb];
<a name="l00100"></a>00100 }
<a name="l00101"></a>00101 
<a name="l00102"></a>00102 
<a name="l00103"></a>00103 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00104"></a>00104 <span class="comment">* @fn void partie::def_connection( partie::t_Connection cnx )</span>
<a name="l00105"></a>00105 <span class="comment">* @brief Permet de modifier la connection: Host, Local, None ( pas de connection )</span>
<a name="l00106"></a>00106 <span class="comment">*/</span>
<a name="l00107"></a><a class="code" href="classpartie.html#ade01e6f9ef64f5dbc1cc1cb725a7a379">00107</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#ade01e6f9ef64f5dbc1cc1cb725a7a379" title="Permet de modifier la connection: Host, Local, None ( pas de connection ).">partie::def_connection</a>( <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207">partie::t_Connection</a> cnx )
<a name="l00108"></a>00108 {
<a name="l00109"></a>00109     <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> = cnx;
<a name="l00110"></a>00110     <span class="keywordflow">if</span>( cnx == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a07002cd38b9e91b9cc306606db34c632">CNX_Host</a> )
<a name="l00111"></a>00111         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a> = <span class="keyword">new</span> <a class="code" href="classserver.html" title="Cette class permet de gérer facilement un serveur.">server</a>;
<a name="l00112"></a>00112 
<a name="l00113"></a>00113     <span class="keywordflow">if</span>( cnx == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a44308fb32a7a5f92c250894c660caf3b">CNX_Client</a> )
<a name="l00114"></a>00114         <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a> = <span class="keyword">new</span> <a class="code" href="classclient.html" title="Cette class permet de gérer facilement un client.">client</a>;
<a name="l00115"></a>00115 }
<a name="l00116"></a>00116 
<a name="l00117"></a>00117 
<a name="l00118"></a>00118 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00119"></a>00119 <span class="comment">* @fn perso* partie::joueur( unsigned int joueur_numero ) const</span>
<a name="l00120"></a>00120 <span class="comment">* @brief Renvoie un joueur</span>
<a name="l00121"></a>00121 <span class="comment">* @param joueur_numero l&#39;id du joueur [0 à ... ]</span>
<a name="l00122"></a>00122 <span class="comment">* @return 0 en cas de bug ! Un pointeur vers le joueur demandé sinon.</span>
<a name="l00123"></a>00123 <span class="comment">*/</span>
<a name="l00124"></a><a class="code" href="classpartie.html#aa259db60507f45e2307fa457879be8ee">00124</a> <a class="code" href="classperso.html" title="Gère un personnage.">perso</a>* <a class="code" href="classpartie.html#aa259db60507f45e2307fa457879be8ee" title="Renvoie un joueur.">partie::joueur</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> joueur_numero )<span class="keyword"> const</span>
<a name="l00125"></a>00125 <span class="keyword"></span>{
<a name="l00126"></a>00126     <span class="keywordflow">if</span>( joueur_numero &gt;= <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> || !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a> ){
<a name="l00127"></a>00127         stdError(<span class="stringliteral">&quot;joueur_numero(%u) &gt;= c_nb_joueurs(%u) || !c_joueurs(%X)&quot;</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)joueur_numero, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)<a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>);
<a name="l00128"></a>00128         <span class="keywordflow">return</span> 0;
<a name="l00129"></a>00129     }
<a name="l00130"></a>00130     <span class="keywordflow">return</span> <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>+joueur_numero;
<a name="l00131"></a>00131 }
<a name="l00132"></a>00132 
<a name="l00133"></a>00133 
<a name="l00134"></a>00134 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00135"></a>00135 <span class="comment">* @fn unsigned char partie::nbJoueurVivant() const</span>
<a name="l00136"></a>00136 <span class="comment">* @brief Renvoie le nombre de joueur en vie</span>
<a name="l00137"></a>00137 <span class="comment">*/</span>
<a name="l00138"></a><a class="code" href="classpartie.html#a9d770bbd7b907ca0b8ed2f83f6c93adb">00138</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="classpartie.html#a9d770bbd7b907ca0b8ed2f83f6c93adb" title="Renvoie le nombre de joueur en vie.">partie::nbJoueurVivant</a>()<span class="keyword"> const</span>
<a name="l00139"></a>00139 <span class="keyword"></span>{
<a name="l00140"></a>00140     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="classpartie.html#a9d770bbd7b907ca0b8ed2f83f6c93adb" title="Renvoie le nombre de joueur en vie.">nbJoueurVivant</a> = 0;
<a name="l00141"></a>00141     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> i=0; i&lt;<a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a>; i++ )
<a name="l00142"></a>00142     {
<a name="l00143"></a>00143         <span class="keywordflow">if</span>( (<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal()
<a name="l00144"></a>00144             || (
<a name="l00145"></a>00145                 !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal()
<a name="l00146"></a>00146                 &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket() != INVALID_SOCKET
<a name="l00147"></a>00147                 )
<a name="l00148"></a>00148             )
<a name="l00149"></a>00149             &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].armements()
<a name="l00150"></a>00150         )
<a name="l00151"></a>00151             nbJoueurVivant++;
<a name="l00152"></a>00152     }
<a name="l00153"></a>00153     <span class="keywordflow">return</span> nbJoueurVivant;
<a name="l00154"></a>00154 }
<a name="l00155"></a>00155 
<a name="l00156"></a>00156 
<a name="l00157"></a>00157 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00158"></a>00158 <span class="comment">* @fn unsigned char partie::nbJoueursReel() const</span>
<a name="l00159"></a>00159 <span class="comment">* @brief Retourne le nombre de joueur réel. (Lors de mode connecté)</span>
<a name="l00160"></a>00160 <span class="comment">*/</span>
<a name="l00161"></a><a class="code" href="classpartie.html#a729eac4c3ed1e70b018d36b70321b0b5">00161</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="classpartie.html#a729eac4c3ed1e70b018d36b70321b0b5" title="Retourne le nombre de joueur réel. (Lors de mode connecté).">partie::nbJoueursReel</a>()<span class="keyword"> const</span>
<a name="l00162"></a>00162 <span class="keyword"></span>{
<a name="l00163"></a>00163     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="classpartie.html#a729eac4c3ed1e70b018d36b70321b0b5" title="Retourne le nombre de joueur réel. (Lors de mode connecté).">nbJoueursReel</a> = 0;
<a name="l00164"></a>00164     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> i=0; i&lt;<a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a>; i++ )
<a name="l00165"></a>00165     {
<a name="l00166"></a>00166         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal() ){
<a name="l00167"></a>00167             nbJoueursReel++;
<a name="l00168"></a>00168         }<span class="keywordflow">else</span>{
<a name="l00169"></a>00169             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket() != INVALID_SOCKET )
<a name="l00170"></a>00170                 nbJoueursReel++;
<a name="l00171"></a>00171         }
<a name="l00172"></a>00172     }
<a name="l00173"></a>00173     <span class="keywordflow">return</span> nbJoueursReel;
<a name="l00174"></a>00174 }
<a name="l00175"></a>00175 
<a name="l00176"></a>00176 
<a name="l00177"></a>00177 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00178"></a>00178 <span class="comment">* @fn server* partie::getServeur() const</span>
<a name="l00179"></a>00179 <span class="comment">* @brief Renvoie le serveur utilisé pour communiquer.</span>
<a name="l00180"></a>00180 <span class="comment">* @return Le pointeur vers le serveur si tout est OK. NULL sinon</span>
<a name="l00181"></a>00181 <span class="comment">*/</span>
<a name="l00182"></a><a class="code" href="classpartie.html#a6e482f58cab5db9b2e529ec23784f8ae">00182</a> <a class="code" href="classserver.html" title="Cette class permet de gérer facilement un serveur.">server</a>* <a class="code" href="classpartie.html#a6e482f58cab5db9b2e529ec23784f8ae" title="Renvoie le serveur utilisé pour communiquer.">partie::getServeur</a>()<span class="keyword"> const</span>
<a name="l00183"></a>00183 <span class="keyword"></span>{
<a name="l00184"></a>00184     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a07002cd38b9e91b9cc306606db34c632">CNX_Host</a> )
<a name="l00185"></a>00185         <span class="keywordflow">return</span> <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>;
<a name="l00186"></a>00186 
<a name="l00187"></a>00187     stdError(<span class="stringliteral">&quot;Attention ! Cette partie n&#39;est pas configurée en tant que Host !&quot;</span>);
<a name="l00188"></a>00188     <span class="keywordflow">return</span> NULL;
<a name="l00189"></a>00189 }
<a name="l00190"></a>00190 
<a name="l00191"></a>00191 
<a name="l00192"></a>00192 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00193"></a>00193 <span class="comment">* @fn client* partie::getClient() const</span>
<a name="l00194"></a>00194 <span class="comment">* @brief Renvoie le client utilisé pour communiquer.</span>
<a name="l00195"></a>00195 <span class="comment">* @return Le pointeur vers le client si tout est OK. NULL sinon</span>
<a name="l00196"></a>00196 <span class="comment">*/</span>
<a name="l00197"></a><a class="code" href="classpartie.html#aba546895433f712feea797aee65aeb96">00197</a> <a class="code" href="classclient.html" title="Cette class permet de gérer facilement un client.">client</a>* <a class="code" href="classpartie.html#aba546895433f712feea797aee65aeb96" title="Renvoie le client utilisé pour communiquer.">partie::getClient</a>()<span class="keyword"> const</span>
<a name="l00198"></a>00198 <span class="keyword"></span>{
<a name="l00199"></a>00199     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a44308fb32a7a5f92c250894c660caf3b">CNX_Client</a> )
<a name="l00200"></a>00200         <span class="keywordflow">return</span> <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>;
<a name="l00201"></a>00201 
<a name="l00202"></a>00202     stdError(<span class="stringliteral">&quot;Attention ! Cette partie n&#39;est pas configurée en tant que Client !&quot;</span>);
<a name="l00203"></a>00203     <span class="keywordflow">return</span> NULL;
<a name="l00204"></a>00204 }
<a name="l00205"></a>00205 
<a name="l00206"></a>00206 
<a name="l00207"></a>00207 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00208"></a>00208 <span class="comment">* @fn bool partie::playerNeedRefresh( unsigned char idJoueur )</span>
<a name="l00209"></a>00209 <span class="comment">* @brief Indique si les données graphiques du joueur ont besoin d&#39;un raffraichissement graphique.</span>
<a name="l00210"></a>00210 <span class="comment">*/</span>
<a name="l00211"></a><a class="code" href="classpartie.html#a957dd9c9405332830ca5312fe600b139">00211</a> <span class="keywordtype">bool</span> <a class="code" href="classpartie.html#a957dd9c9405332830ca5312fe600b139" title="Indique si les données graphiques du joueur ont besoin d&amp;#39;un raffraichissement graphique...">partie::playerNeedRefresh</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> idJoueur )
<a name="l00212"></a>00212 {
<a name="l00213"></a>00213     <span class="keywordflow">if</span>( idJoueur &gt;= <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> )
<a name="l00214"></a>00214         stdErrorE(<span class="stringliteral">&quot;idJoueur=%u alors qu&#39;il n&#39;y a que %d joueur ! Donnez un nombre entre [0 et %d]&quot;</span>, idJoueur, <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a>, <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a>-1);
<a name="l00215"></a>00215 
<a name="l00216"></a>00216     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;<a class="code" href="classpartie.html#a755a69e104dc7c643a5bb687e6281e2f">c_listPlayerRefresh</a>.size(); i++ )
<a name="l00217"></a>00217     {
<a name="l00218"></a>00218         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a755a69e104dc7c643a5bb687e6281e2f">c_listPlayerRefresh</a>.at(i) == idJoueur ){
<a name="l00219"></a>00219             <a class="code" href="classpartie.html#a755a69e104dc7c643a5bb687e6281e2f">c_listPlayerRefresh</a>.erase(<a class="code" href="classpartie.html#a755a69e104dc7c643a5bb687e6281e2f">c_listPlayerRefresh</a>.begin()+i);
<a name="l00220"></a>00220             <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00221"></a>00221         }
<a name="l00222"></a>00222     }
<a name="l00223"></a>00223 
<a name="l00224"></a>00224     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00225"></a>00225 }
<a name="l00226"></a>00226 
<a name="l00227"></a>00227 
<a name="l00228"></a>00228 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l00229"></a>00229 <span class="comment">* @fn char partie::main( libAff * afficherMapEtEvent )</span>
<a name="l00230"></a>00230 <span class="comment">* @brief Lance le jeu</span>
<a name="l00231"></a>00231 <span class="comment">* @param[in] afficherMapEtEvent La fonction qui va servir à afficher la map</span>
<a name="l00232"></a>00232 <span class="comment">* @return   Un nombre &gt; à 1 : Le nombre retourné est le joueur qui a gagné.&lt;br /&gt;</span>
<a name="l00233"></a>00233 <span class="comment">*           0 : Match nul</span>
<a name="l00234"></a>00234 <span class="comment">*           -1: Retour au menu</span>
<a name="l00235"></a>00235 <span class="comment">*           -10: Problème</span>
<a name="l00236"></a>00236 <span class="comment">*</span>
<a name="l00237"></a>00237 <span class="comment">* @warning Toutes les variables doivent être correctement initialisées !</span>
<a name="l00238"></a>00238 <span class="comment">*/</span>
<a name="l00239"></a><a class="code" href="classpartie.html#a9133cb48f9a3975c089dbc5dba8311c4">00239</a> <span class="keywordtype">char</span> <a class="code" href="classpartie.html#a9133cb48f9a3975c089dbc5dba8311c4" title="Lance le jeu.">partie::main</a>( libAff * afficherMapEtEvent )
<a name="l00240"></a>00240 {
<a name="l00241"></a>00241     <span class="keywordflow">if</span>( !afficherMapEtEvent )
<a name="l00242"></a>00242         stdErrorE(<span class="stringliteral">&quot;Fonction d&#39;affichage incorrect ! (afficherMapEtEvent=0)&quot;</span>);
<a name="l00243"></a>00243 
<a name="l00244"></a>00244     SYS_CLAVIER key;
<a name="l00245"></a>00245     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0;
<a name="l00246"></a>00246     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> j=0;
<a name="l00247"></a>00247     <span class="keywordtype">bool</span> continuerScanClavier=1;
<a name="l00248"></a>00248     <a class="code" href="classoptions.html" title="Gère les options.">options</a>* opt = <a class="code" href="classoptions.html#a3db3c367210272824e13e6bb1260e8c4" title="Initialise la class options.">options::getInstance</a>();
<a name="l00249"></a>00249     <a class="code" href="structbonus_1_1s___event.html" title="Cette sturcture accueil les Events posées.">bonus::s_Event</a> bonusEvent;
<a name="l00250"></a>00250     <span class="keywordtype">char</span> JoueurGagnant = 0;<span class="comment">// Aucune joueur n&#39;a gagné par défaut</span>
<a name="l00251"></a>00251     <a class="code" href="structpartie_1_1s___event_bombe.html" title="Permet de gérer les event des bombes.">s_EventBombe</a> e;
<a name="l00252"></a>00252     <a class="code" href="class___base_client_server_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s;
<a name="l00253"></a>00253     uint32_t X=0, Y=0;<span class="comment">// Utilisé uniquement lors de partie online ( host &amp; client )</span>
<a name="l00254"></a>00254     <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165" title="Les actions possibles avec les touches.">clavier::t_touche</a> onlineClavier;<span class="comment">// Utilisé uniquement lors de partie online ( host &amp; client )</span>
<a name="l00255"></a>00255     <a class="code" href="classpartie.html#a1e5f41da1f77f4e44cf5735f224e0388">c_winnerName</a>.clear();
<a name="l00256"></a>00256     <a class="code" href="classpartie.html#a49e9e36c859300de41d9396f5770016a">c_timerAttak</a> = 0;
<a name="l00257"></a>00257     <span class="keywordtype">bool</span> envoyerInfoJoueur = 0;
<a name="l00258"></a>00258 
<a name="l00259"></a>00259     <span class="comment">// On initialise les bonus utilisables pour cette partie</span>
<a name="l00260"></a>00260     <a class="code" href="classbonus.html#a520116b2a2842563acb732ba56199595" title="Renvoie le pointeur des bonus généraux.">bonus::bonusProp</a>();
<a name="l00261"></a>00261 
<a name="l00262"></a>00262     <span class="comment">/*##########################################################################</span>
<a name="l00263"></a>00263 <span class="comment">    * Partie en mode client</span>
<a name="l00264"></a>00264 <span class="comment">    */</span>
<a name="l00265"></a>00265     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a44308fb32a7a5f92c250894c660caf3b">CNX_Client</a> ){
<a name="l00266"></a>00266         <span class="comment">// Teste sur les types</span>
<a name="l00267"></a>00267         <span class="keywordflow">if</span>( <span class="keyword">sizeof</span>(uint8_t) != <span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) )
<a name="l00268"></a>00268             stdErrorE(<span class="stringliteral">&quot;sizeof(uint8_t){%u} != sizeof(unsigned char){%u}&quot;</span>, <span class="keyword">sizeof</span>(uint8_t), <span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>));
<a name="l00269"></a>00269 
<a name="l00270"></a>00270         <span class="comment">// Tentative de connection</span>
<a name="l00271"></a>00271         <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#aafb3e1157b7e1f3e81c09fe1c7866a82" title="Permet de se connecter au serveur.">connection</a>() ){
<a name="l00272"></a>00272             stdError(<span class="stringliteral">&quot;Impossible de se connecter au serveur demandé !&quot;</span>);
<a name="l00273"></a>00273             <span class="keywordflow">return</span> -10;
<a name="l00274"></a>00274         }
<a name="l00275"></a>00275 
<a name="l00276"></a>00276         memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// On vide le buffer</span>
<a name="l00277"></a>00277         <span class="comment">// Envoie de la config 32Bits?, IsIntel?</span>
<a name="l00278"></a>00278         sprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;%d %d %d %d&quot;</span>, <a class="code" href="config_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a7a96c5436c2b93e73f491800d240a6d9">__BOMBERMAN_VERSION__</a>, <a class="code" href="meta_prog_8inl.html#a99fb83031ce9923c84392b4e92f956b5aa6ab291ddde20dbab3a32cffd81fc8fb">Is32Bits</a>, (<span class="keywordtype">int</span>)<a class="code" href="classbase_client_server.html#a09c15f21a6970e5a5f9103802291c502" title="Permet de savoir si l&amp;#39;on est sur une machine Intel, une machine qui lit les octects en Little End...">baseClientServer::isLittleEndian</a>(), <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l00279"></a>00279         <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#ad37308b8128932bea9ddb5afab3ba441" title="Envoie un message (buffer) au serveur.">send_message</a>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l00280"></a>00280 
<a name="l00281"></a>00281         memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// On vide le buffer</span>
<a name="l00282"></a>00282         <span class="comment">// Attente de la réponce</span>
<a name="l00283"></a>00283         <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a2ea117a6fd3515343481d4ea4d97eab4" title="Récupère les données envoyées par le serveur.">readServer</a>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>) ){
<a name="l00284"></a>00284             stdError(<span class="stringliteral">&quot;Configuration 32Bits, IsIntel incorrect pour le serveur ! Connection refusé !&quot;</span>);
<a name="l00285"></a>00285             <span class="keywordflow">return</span> -10;<span class="comment">// On a été déconnecté !</span>
<a name="l00286"></a>00286         }
<a name="l00287"></a>00287 
<a name="l00288"></a>00288         <span class="comment">// Envoie du nom</span>
<a name="l00289"></a>00289         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> &gt; 1 )
<a name="l00290"></a>00290             <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#ad37308b8128932bea9ddb5afab3ba441" title="Envoie un message (buffer) au serveur.">send_message</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#afb65c2ba5d2855f340b6e6183bcfa525" title="Si connection client -&amp;gt; ID du joueur (correspond au numéro dans le tableau c_joueur).">c_uniqueJoueurID</a>].nom()-&gt;c_str(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[0].nom()-&gt;length());
<a name="l00291"></a>00291         <span class="keywordflow">else</span>
<a name="l00292"></a>00292             <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#ad37308b8128932bea9ddb5afab3ba441" title="Envoie un message (buffer) au serveur.">send_message</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[0].nom()-&gt;c_str(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[0].nom()-&gt;length());
<a name="l00293"></a>00293 
<a name="l00294"></a>00294         memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// On vide le buffer</span>
<a name="l00295"></a>00295         <span class="comment">// Attente de la réponce</span>
<a name="l00296"></a>00296         <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a2ea117a6fd3515343481d4ea4d97eab4" title="Récupère les données envoyées par le serveur.">readServer</a>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>) ){
<a name="l00297"></a>00297             stdError(<span class="stringliteral">&quot;Nom déjà utilisé ! Connection refusé !&quot;</span>);
<a name="l00298"></a>00298             <span class="keywordflow">return</span> -10;<span class="comment">// On a été déconnecté !</span>
<a name="l00299"></a>00299         }
<a name="l00300"></a>00300 
<a name="l00301"></a>00301         memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// On vide le buffer</span>
<a name="l00302"></a>00302         <span class="comment">// Attente de la dimention de la map</span>
<a name="l00303"></a>00303         <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a2ea117a6fd3515343481d4ea4d97eab4" title="Récupère les données envoyées par le serveur.">readServer</a>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>) ){
<a name="l00304"></a>00304             stdError(<span class="stringliteral">&quot;Erreur de connection !&quot;</span>);
<a name="l00305"></a>00305             <span class="keywordflow">return</span> -10;<span class="comment">// On a été déconnecté !</span>
<a name="l00306"></a>00306         }
<a name="l00307"></a>00307 
<a name="l00308"></a>00308         <span class="comment">// Définition des variables qui seront utilisées</span>
<a name="l00309"></a>00309         <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469b" title="Les types de d&amp;#39;objet sur la map.">map::t_type</a> type;
<a name="l00310"></a>00310 
<a name="l00311"></a>00311         <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">unPackIt</a>( &amp;X, &amp;Y, &amp;type );<span class="comment">// type inutile ici</span>
<a name="l00312"></a>00312 
<a name="l00313"></a>00313         <span class="keywordflow">if</span>( !X || !Y )
<a name="l00314"></a>00314             stdErrorE(<span class="stringliteral">&quot;Taille de map incorrect !!! TailleX=%u, TailleY=%u, &lt;%s&gt;&quot;</span>, X, Y, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00315"></a>00315 
<a name="l00316"></a>00316         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a> )
<a name="l00317"></a>00317             <span class="keyword">delete</span> <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>;
<a name="l00318"></a>00318         <span class="keywordflow">if</span>( !(<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a> = <span class="keyword">new</span> <a class="code" href="classmap.html" title="Gère une map.">map</a>(X, Y)) )<span class="comment">// Création de la map</span>
<a name="l00319"></a>00319             stdErrorE(<span class="stringliteral">&quot;Erreur lors de l&#39;allocation mémoire !&quot;</span>);
<a name="l00320"></a>00320 
<a name="l00321"></a>00321         memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// On vide le buffer</span>
<a name="l00322"></a>00322 
<a name="l00323"></a>00323         <span class="comment">// Récéption de TOUTE la map et des autres infos</span>
<a name="l00324"></a>00324         <span class="keywordflow">while</span>( <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a2ea117a6fd3515343481d4ea4d97eab4" title="Récupère les données envoyées par le serveur.">readServer</a>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>) != 0 &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] != <span class="charliteral">&#39;0&#39;</span> )
<a name="l00325"></a>00325         {
<a name="l00326"></a>00326             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] ){<span class="comment">// Paquet vide...</span>
<a name="l00327"></a>00327                 stdError(<span class="stringliteral">&quot;Paquet vide !&quot;</span>);
<a name="l00328"></a>00328                 baseClientServer::printAllBuffer( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>, __FILE__, __LINE__ );
<a name="l00329"></a>00329 
<a name="l00330"></a>00330                 <span class="comment">// Analyse du paquet</span>
<a name="l00331"></a>00331                 <span class="keywordflow">for</span>( i=0; i&lt;PACK_bufferSize; i++ )
<a name="l00332"></a>00332                 {
<a name="l00333"></a>00333                     <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){
<a name="l00334"></a>00334                         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i+1] == <span class="charliteral">&#39;:&#39;</span> )
<a name="l00335"></a>00335                             strcpy(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>+i);
<a name="l00336"></a>00336                         <span class="keywordflow">break</span>;
<a name="l00337"></a>00337                     }
<a name="l00338"></a>00338                 }
<a name="l00339"></a>00339                 <span class="comment">// Esqu&#39;il nous manque une partie du paquet ?</span>
<a name="l00340"></a>00340                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] == <span class="stringliteral">&#39;²&#39;</span> ){
<a name="l00341"></a>00341                     stdError(<span class="stringliteral">&quot;Paquet récupéré: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00342"></a>00342                 }<span class="keywordflow">else</span>{
<a name="l00343"></a>00343                     stdError(<span class="stringliteral">&quot;Impossible de récupérer le paquet: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00344"></a>00344                 }
<a name="l00345"></a>00345             }
<a name="l00346"></a>00346 
<a name="l00347"></a>00347             <span class="comment">// Esqu&#39;il nous manque une partie du paquet ?</span>
<a name="l00348"></a>00348             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] != <span class="stringliteral">&#39;²&#39;</span> ){
<a name="l00349"></a>00349                 stdError(<span class="stringliteral">&quot;Il manque une partie du Paquet ! Paquet actuel: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00350"></a>00350                 <span class="keywordflow">while</span>( <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a2ea117a6fd3515343481d4ea4d97eab4" title="Récupère les données envoyées par le serveur.">readServer</a>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>+strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>), <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>-strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)) != 0 &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] != <span class="stringliteral">&#39;²&#39;</span> );
<a name="l00351"></a>00351                 stdError(<span class="stringliteral">&quot;Paquet final: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00352"></a>00352 
<a name="l00353"></a>00353                 <span class="comment">// Esqu&#39;il nous manque une partie du paquet ?</span>
<a name="l00354"></a>00354                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] == <span class="stringliteral">&#39;²&#39;</span> ){
<a name="l00355"></a>00355                     stdError(<span class="stringliteral">&quot;Paquet récupéré: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00356"></a>00356                 }<span class="keywordflow">else</span>{
<a name="l00357"></a>00357                     stdError(<span class="stringliteral">&quot;Impossible de récupérer le paquet: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00358"></a>00358                     <span class="keywordflow">continue</span>;
<a name="l00359"></a>00359                 }
<a name="l00360"></a>00360             }
<a name="l00361"></a>00361 
<a name="l00362"></a>00362             <span class="keywordflow">switch</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] )
<a name="l00363"></a>00363             {
<a name="l00364"></a>00364                 <span class="keywordflow">case</span> <span class="charliteral">&#39;1&#39;</span>: {<span class="comment">// Map</span>
<a name="l00365"></a>00365                     <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">unPackIt</a>( &amp;X, &amp;Y, &amp;type );
<a name="l00366"></a>00366                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(X, Y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>);
<a name="l00367"></a>00367                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(X, Y, type);
<a name="l00368"></a>00368                     <span class="keywordflow">break</span>;
<a name="l00369"></a>00369                 }
<a name="l00370"></a>00370                 <span class="keywordflow">case</span> <span class="charliteral">&#39;2&#39;</span>: {<span class="comment">// Meta données</span>
<a name="l00371"></a>00371                     <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">unPackIt</a>(X, Y);
<a name="l00372"></a>00372                     <span class="keywordflow">break</span>;
<a name="l00373"></a>00373                 }
<a name="l00374"></a>00374                 <span class="keywordflow">case</span> <span class="charliteral">&#39;5&#39;</span>: {<span class="comment">// Nombre de joueur</span>
<a name="l00375"></a>00375                     <a class="code" href="classpartie.html#a2003f42af8a8c3f3038e0707ca966821" title="Definie le nombre de joueur.">def_nbJoueurs</a>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[2]-<span class="charliteral">&#39;0&#39;</span>);
<a name="l00376"></a>00376                     <span class="keywordflow">break</span>;
<a name="l00377"></a>00377                 }
<a name="l00378"></a>00378                 <span class="keywordflow">case</span> <span class="charliteral">&#39;6&#39;</span>:
<a name="l00379"></a>00379                 <span class="keywordflow">case</span> <span class="charliteral">&#39;7&#39;</span>: {<span class="comment">// Infos Joueur</span>
<a name="l00380"></a>00380                     <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">unPackIt</a>();
<a name="l00381"></a>00381                     <span class="keywordflow">break</span>;
<a name="l00382"></a>00382                 }
<a name="l00383"></a>00383                 <span class="keywordflow">case</span> <span class="charliteral">&#39;9&#39;</span>: {<span class="comment">// Timer</span>
<a name="l00384"></a>00384                     sscanf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;9:%ld²&quot;</span>, &amp;<a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a>);
<a name="l00385"></a>00385                     <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a> += clock();
<a name="l00386"></a>00386                     <span class="keywordflow">break</span>;
<a name="l00387"></a>00387                 }
<a name="l00388"></a>00388                 <span class="keywordflow">default</span>:{
<a name="l00389"></a>00389                     stdError(<span class="stringliteral">&quot;Donnée incorrect ! %s&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00390"></a>00390                     <span class="keywordflow">break</span>;
<a name="l00391"></a>00391                 }
<a name="l00392"></a>00392             }
<a name="l00393"></a>00393             memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// On vide le buffer</span>
<a name="l00394"></a>00394         }
<a name="l00395"></a>00395 
<a name="l00396"></a>00396         <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a23d55bd91048a867c3c1cb353de27869" title="Permet de savoir si l&amp;#39;on est connecté au serveur.">is_connected</a>() ){
<a name="l00397"></a>00397             stdError(<span class="stringliteral">&quot;Problème de déconnection avec le serveur !&quot;</span>);
<a name="l00398"></a>00398             <span class="keywordflow">return</span> -10;
<a name="l00399"></a>00399         }
<a name="l00400"></a>00400 
<a name="l00401"></a>00401         <span class="comment">// Commencement de la partie</span>
<a name="l00402"></a>00402         <span class="keywordflow">do</span>{
<a name="l00403"></a>00403             <span class="comment">// Affichage de la map et récéption des Event claviers</span>
<a name="l00404"></a>00404             key = afficherMapEtEvent( <span class="keyword">this</span> );
<a name="l00405"></a>00405 
<a name="l00406"></a>00406             <span class="keywordflow">switch</span>( opt-&gt;<a class="code" href="classoptions.html#a281d1464d4a4c827bcbac56ab3c9be94" title="Renvoie le clavier numéro {clavier_numero}.">clavierJoueur</a>(0)-&gt;<a class="code" href="classclavier.html#a8c811ee0dbf6c9aa42d013c0794291ef" title="Détermine si la touche tsys envoyée fait partie des actions de ce clavier.">obtenirTouche</a>(key) )
<a name="l00407"></a>00407             {
<a name="l00408"></a>00408                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a6b4d36333878cb8bda9ab4d119cd4e75" title="En cas de bug.">clavier::NUL</a>: {
<a name="l00409"></a>00409                     <span class="keywordflow">break</span>;
<a name="l00410"></a>00410                 }
<a name="l00411"></a>00411                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a8231b289f48a99aa410bbbeff3bd9b8e">clavier::haut</a>:
<a name="l00412"></a>00412                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a11ae41a3ad78c2ca0e17684d62ab8a0a">clavier::bas</a>:
<a name="l00413"></a>00413                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a02c98200c93bcecacd095997b8ae558a">clavier::droite</a>:
<a name="l00414"></a>00414                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165af13384e0a20ef0b70ff3f04e41879df7">clavier::gauche</a>:
<a name="l00415"></a>00415                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165ab7a4a8f874823e415ac1fd56e450a4b8">clavier::lancerBombe</a>:
<a name="l00416"></a>00416                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a25f40f7924d6289a172be3c154768918">clavier::declancheur</a>: {
<a name="l00417"></a>00417                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a23d55bd91048a867c3c1cb353de27869" title="Permet de savoir si l&amp;#39;on est connecté au serveur.">is_connected</a>() )
<a name="l00418"></a>00418                         <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#ad37308b8128932bea9ddb5afab3ba441" title="Envoie un message (buffer) au serveur.">send_message</a>(<a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>(opt-&gt;<a class="code" href="classoptions.html#a281d1464d4a4c827bcbac56ab3c9be94" title="Renvoie le clavier numéro {clavier_numero}.">clavierJoueur</a>(0)-&gt;<a class="code" href="classclavier.html#a8c811ee0dbf6c9aa42d013c0794291ef" title="Détermine si la touche tsys envoyée fait partie des actions de ce clavier.">obtenirTouche</a>(key)), <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Envoie de notre touche</span>
<a name="l00419"></a>00419                     <span class="keywordflow">break</span>;
<a name="l00420"></a>00420                 }
<a name="l00421"></a>00421                 <span class="keywordflow">default</span>: {
<a name="l00422"></a>00422                     stdError(<span class="stringliteral">&quot;Touche envoyé par le joueur %d est inconnue : %d&quot;</span>, (<span class="keywordtype">int</span>)opt-&gt;<a class="code" href="classoptions.html#a281d1464d4a4c827bcbac56ab3c9be94" title="Renvoie le clavier numéro {clavier_numero}.">clavierJoueur</a>(i)-&gt;<a class="code" href="classclavier.html#a8c811ee0dbf6c9aa42d013c0794291ef" title="Détermine si la touche tsys envoyée fait partie des actions de ce clavier.">obtenirTouche</a>(key), (int)key);
<a name="l00423"></a>00423                     <span class="keywordflow">break</span>;
<a name="l00424"></a>00424                 }
<a name="l00425"></a>00425             }
<a name="l00426"></a>00426 
<a name="l00427"></a>00427             <span class="comment">/*******************************************************************</span>
<a name="l00428"></a>00428 <span class="comment">            * Reception des données réseaux</span>
<a name="l00429"></a>00429 <span class="comment">            */</span>
<a name="l00430"></a>00430             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#ae2d32defc7b1e99ef53d599d641a5335" title="Permet de récupérer détecter l&amp;#39;activiter sur le réseau.">lookupConnection</a>() ){<span class="comment">// A faire en 1er !</span>
<a name="l00431"></a>00431                 memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// On vide le buffer</span>
<a name="l00432"></a>00432                 <span class="keywordflow">while</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] != <span class="charliteral">&#39;4&#39;</span> &amp;&amp; <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a2ea117a6fd3515343481d4ea4d97eab4" title="Récupère les données envoyées par le serveur.">readServer</a>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>) != 0 &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] != <span class="charliteral">&#39;0&#39;</span> )
<a name="l00433"></a>00433                 {
<a name="l00434"></a>00434                     <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] ){<span class="comment">// Paquet vide...</span>
<a name="l00435"></a>00435                         stdError(<span class="stringliteral">&quot;Paquet vide !&quot;</span>);
<a name="l00436"></a>00436                         baseClientServer::printAllBuffer( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>, __FILE__, __LINE__ );
<a name="l00437"></a>00437 
<a name="l00438"></a>00438                         <span class="comment">// Analyse du paquet</span>
<a name="l00439"></a>00439                         <span class="keywordflow">for</span>( i=0; i&lt;PACK_bufferSize; i++ )
<a name="l00440"></a>00440                         {
<a name="l00441"></a>00441                             <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){
<a name="l00442"></a>00442                                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i+1] == <span class="charliteral">&#39;:&#39;</span> )
<a name="l00443"></a>00443                                     strcpy(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>+i);
<a name="l00444"></a>00444                                 <span class="keywordflow">break</span>;
<a name="l00445"></a>00445                             }
<a name="l00446"></a>00446                         }
<a name="l00447"></a>00447                         <span class="comment">// Esqu&#39;il nous manque une partie du paquet ?</span>
<a name="l00448"></a>00448                         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] == <span class="stringliteral">&#39;²&#39;</span> ){
<a name="l00449"></a>00449                             stdError(<span class="stringliteral">&quot;Paquet récupéré: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00450"></a>00450                         }<span class="keywordflow">else</span>{
<a name="l00451"></a>00451                             stdError(<span class="stringliteral">&quot;Impossible de récupérer le paquet: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00452"></a>00452                         }
<a name="l00453"></a>00453                     }
<a name="l00454"></a>00454 
<a name="l00455"></a>00455                     <span class="comment">// Esqu&#39;il nous manque une partie du paquet ?</span>
<a name="l00456"></a>00456                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] != <span class="stringliteral">&#39;²&#39;</span> ){
<a name="l00457"></a>00457                         stdError(<span class="stringliteral">&quot;Il manque une partie du Paquet ! Paquet actuel: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00458"></a>00458                         <span class="keywordflow">while</span>( <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a2ea117a6fd3515343481d4ea4d97eab4" title="Récupère les données envoyées par le serveur.">readServer</a>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>+strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>), <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>-strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)) != 0 &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] != <span class="stringliteral">&#39;²&#39;</span> );
<a name="l00459"></a>00459                         stdError(<span class="stringliteral">&quot;Paquet final: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00460"></a>00460 
<a name="l00461"></a>00461                         <span class="comment">// Esqu&#39;il nous manque une partie du paquet ?</span>
<a name="l00462"></a>00462                         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] == <span class="stringliteral">&#39;²&#39;</span> ){
<a name="l00463"></a>00463                             stdError(<span class="stringliteral">&quot;Paquet récupéré: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00464"></a>00464                         }<span class="keywordflow">else</span>{
<a name="l00465"></a>00465                             stdError(<span class="stringliteral">&quot;Impossible de récupérer le paquet: &lt;%s&gt;&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l00466"></a>00466                             <span class="keywordflow">continue</span>;
<a name="l00467"></a>00467                         }
<a name="l00468"></a>00468                     }
<a name="l00469"></a>00469 
<a name="l00470"></a>00470                     <span class="keywordflow">switch</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] )
<a name="l00471"></a>00471                     {
<a name="l00472"></a>00472                         <span class="keywordflow">case</span> <span class="charliteral">&#39;1&#39;</span>: {<span class="comment">// Map</span>
<a name="l00473"></a>00473                             <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">unPackIt</a>( &amp;X, &amp;Y, &amp;type );
<a name="l00474"></a>00474                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(X, Y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>);
<a name="l00475"></a>00475                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(X, Y, type);
<a name="l00476"></a>00476                             memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// On vide le buffer</span>
<a name="l00477"></a>00477                             <span class="keywordflow">break</span>;
<a name="l00478"></a>00478                         }
<a name="l00479"></a>00479                         <span class="keywordflow">case</span> <span class="charliteral">&#39;2&#39;</span>: {<span class="comment">// Meta données</span>
<a name="l00480"></a>00480                             <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">unPackIt</a>(X, Y);
<a name="l00481"></a>00481                             memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// On vide le buffer</span>
<a name="l00482"></a>00482                             <span class="keywordflow">break</span>;
<a name="l00483"></a>00483                         }
<a name="l00484"></a>00484                         <span class="keywordflow">case</span> <span class="charliteral">&#39;4&#39;</span>: {<span class="comment">// Fin de partie</span>
<a name="l00485"></a>00485                             <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] = 0;
<a name="l00486"></a>00486                             JoueurGagnant = <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[2]-<span class="charliteral">&#39;0&#39;</span>;
<a name="l00487"></a>00487                             <a class="code" href="classpartie.html#a1e5f41da1f77f4e44cf5735f224e0388">c_winnerName</a> = <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>+4;
<a name="l00488"></a>00488                             <span class="keywordflow">break</span>;
<a name="l00489"></a>00489                         }
<a name="l00490"></a>00490                         <span class="keywordflow">case</span> <span class="charliteral">&#39;5&#39;</span>: {<span class="comment">// Nombre de joueur</span>
<a name="l00491"></a>00491                             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[2]-<span class="charliteral">&#39;0&#39;</span> &gt; <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> )
<a name="l00492"></a>00492                                 <a class="code" href="classpartie.html#a2003f42af8a8c3f3038e0707ca966821" title="Definie le nombre de joueur.">def_nbJoueurs</a>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[2]-<span class="charliteral">&#39;0&#39;</span>);
<a name="l00493"></a>00493                             <span class="keywordflow">break</span>;
<a name="l00494"></a>00494                         }
<a name="l00495"></a>00495                         <span class="keywordflow">case</span> <span class="charliteral">&#39;6&#39;</span>:
<a name="l00496"></a>00496                         <span class="keywordflow">case</span> <span class="charliteral">&#39;7&#39;</span>: {<span class="comment">// Infos Joueur</span>
<a name="l00497"></a>00497                             <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">unPackIt</a>();
<a name="l00498"></a>00498                             <span class="keywordflow">break</span>;
<a name="l00499"></a>00499                         }
<a name="l00500"></a>00500                         <span class="keywordflow">case</span> <span class="charliteral">&#39;8&#39;</span>: {<span class="comment">// Supprimer le Joueur</span>
<a name="l00501"></a>00501                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[2]-<span class="charliteral">&#39;0&#39;</span>].<a class="code" href="classperso.html#aabdabe266d21f553cd3814cd3b560c64" title="Permet de definir si ce perso est local ou distant.">defLocal</a>(<span class="keyword">false</span>);
<a name="l00502"></a>00502                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[2]-<span class="charliteral">&#39;0&#39;</span>].<a class="code" href="classperso.html#ad5afe81f43724128d79b57acfabcda3a" title="Permet de definir le socket utilisé par le perso.">defSocket</a>(INVALID_SOCKET);
<a name="l00503"></a>00503                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[2]-<span class="charliteral">&#39;0&#39;</span>].<a class="code" href="classperso.html#aa19fd01c37bed0b375dcc4362be08ed1" title="Modif l&amp;#39;armement du perso.">defArmements</a>(0);
<a name="l00504"></a>00504                             <span class="keywordflow">break</span>;
<a name="l00505"></a>00505                         }
<a name="l00506"></a>00506                         <span class="keywordflow">case</span> <span class="charliteral">&#39;9&#39;</span>: {<span class="comment">// Timer</span>
<a name="l00507"></a>00507                             sscanf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;9:%ld²&quot;</span>, &amp;<a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a>);
<a name="l00508"></a>00508                             <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a> += clock();
<a name="l00509"></a>00509                             <span class="keywordflow">break</span>;
<a name="l00510"></a>00510                         }
<a name="l00511"></a>00511                         <span class="keywordflow">default</span>:
<a name="l00512"></a>00512                             <span class="keywordflow">break</span>;
<a name="l00513"></a>00513                     }
<a name="l00514"></a>00514                 }
<a name="l00515"></a>00515             }
<a name="l00516"></a>00516 
<a name="l00517"></a>00517         }<span class="keywordflow">while</span>( key != RETOUR_MENU_PRECEDENT &amp;&amp; <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a23d55bd91048a867c3c1cb353de27869" title="Permet de savoir si l&amp;#39;on est connecté au serveur.">is_connected</a>() &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] != <span class="charliteral">&#39;4&#39;</span> );
<a name="l00518"></a>00518 
<a name="l00519"></a>00519         <a class="code" href="classpartie.html#a811c540cd4f31cf2d0b53dd9939f6cf4">c_client</a>-&gt;<a class="code" href="classclient.html#a8d1188c4d73c355ca3233bd7efbedc75" title="Permet de se déconnecter au serveur.">disconnection</a>();
<a name="l00520"></a>00520 
<a name="l00521"></a>00521         <a class="code" href="classbonus.html#a7b243eb4b56dce02b2008fb78d868684" title="Détruit les bonus qui étaient utilisables durant la partie.">bonus::unInitBonusProp</a>();
<a name="l00522"></a>00522 
<a name="l00523"></a>00523         <span class="keywordflow">return</span> JoueurGagnant;
<a name="l00524"></a>00524     }
<a name="l00525"></a>00525 
<a name="l00526"></a>00526     <span class="comment">/*##########################################################################</span>
<a name="l00527"></a>00527 <span class="comment">    * Partie en mode serveur ou offline</span>
<a name="l00528"></a>00528 <span class="comment">    */</span>
<a name="l00529"></a>00529     <span class="comment">// On initialise les bonus pour les joueurs</span>
<a name="l00530"></a>00530     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> i=0; i&lt;<a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a>; i++ )
<a name="l00531"></a>00531     {
<a name="l00532"></a>00532         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#aa19fd01c37bed0b375dcc4362be08ed1" title="Modif l&amp;#39;armement du perso.">defArmements</a>( <span class="keyword">new</span> <a class="code" href="classbonus.html" title="Gère les bonus.">bonus</a>() );
<a name="l00533"></a>00533         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#af91e74965a273a977bf3eea41dc19c13" title="Charge en mémoire les paramètres par defaut pour une partie F4A.">param_Par_Defaut</a>();
<a name="l00534"></a>00534         <a class="code" href="classpartie.html#a755a69e104dc7c643a5bb687e6281e2f">c_listPlayerRefresh</a>.push_back(i);
<a name="l00535"></a>00535     }
<a name="l00536"></a>00536 
<a name="l00537"></a>00537     <span class="comment">// On génère la map</span>
<a name="l00538"></a>00538     <a class="code" href="classpartie.html#adea76917bafe42b34b4fefae60c965d8" title="Charge une map.">genMap</a>();
<a name="l00539"></a>00539 
<a name="l00540"></a>00540 
<a name="l00541"></a>00541     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a07002cd38b9e91b9cc306606db34c632">CNX_Host</a> ){<span class="comment">// Si on est en mode serveur alors on connecte le serveur</span>
<a name="l00542"></a>00542         <span class="comment">// On détermine le nombre maximum de player online</span>
<a name="l00543"></a>00543         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nbLocal=0;
<a name="l00544"></a>00544         <span class="keywordflow">for</span>( i=0; i&lt;c_nb_joueurs; i++ )
<a name="l00545"></a>00545             nbLocal += <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal();
<a name="l00546"></a>00546 
<a name="l00547"></a>00547         <span class="comment">//stdError(&quot;Nombre de player online max: %u&quot;,c_nb_joueurs-nbLocal);</span>
<a name="l00548"></a>00548 
<a name="l00549"></a>00549         <span class="comment">// Ajustement des paramètres</span>
<a name="l00550"></a>00550         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a72ed5380818b2a60241cdfe9f7b315a8" title="Defini le nombre maximum de client simultané.">setNbClientMax</a>(c_nb_joueurs-nbLocal);
<a name="l00551"></a>00551         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a86e0b7cfa19dc5aee949533eb617e41f" title="Met le serveur en activité. Lance l&amp;#39;écoute sur le port demandé.">Listening</a>();
<a name="l00552"></a>00552 
<a name="l00553"></a>00553         <span class="comment">// Teste sur les types</span>
<a name="l00554"></a>00554         <span class="keywordflow">if</span>( <span class="keyword">sizeof</span>(uint8_t) != <span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) )
<a name="l00555"></a>00555             stdErrorE(<span class="stringliteral">&quot;sizeof(uint8_t){%u} != sizeof(unsigned char){%u}&quot;</span>, <span class="keyword">sizeof</span>(uint8_t), <span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>));
<a name="l00556"></a>00556 
<a name="l00557"></a>00557         <span class="comment">// S&#39;il n&#39;y a qu&#39;un perso en local, alors on wait un perso exterieur</span>
<a name="l00558"></a>00558         <span class="keywordflow">if</span>( nbLocal == 1 ){
<a name="l00559"></a>00559             <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#acf92891d022c8c20e68b634ba1701757" title="Modifier le temps d&amp;#39;attente d&amp;#39;une réponse.">setWait</a>(0,100000);<span class="comment">// 0.1 secondes</span>
<a name="l00560"></a>00560             <span class="comment">// Ajout des player</span>
<a name="l00561"></a>00561             <span class="keywordflow">while</span>( (s = <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a970c338624781ad9b8db82d0e853210f" title="Envoie une message (buffer) au client.">lookupNewConnection</a>()) == INVALID_SOCKET &amp;&amp; key != RETOUR_MENU_PRECEDENT ){
<a name="l00562"></a>00562                 <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a> = clock();
<a name="l00563"></a>00563                 key = afficherMapEtEvent( <span class="keyword">this</span> );<span class="comment">// Pour récup les touches</span>
<a name="l00564"></a>00564             }
<a name="l00565"></a>00565 
<a name="l00566"></a>00566             <span class="keywordflow">if</span>( key == RETOUR_MENU_PRECEDENT )
<a name="l00567"></a>00567                 <span class="keywordflow">return</span> -1;
<a name="l00568"></a>00568 
<a name="l00569"></a>00569             <span class="comment">// On a enfin un player, on lui envoie la map</span>
<a name="l00570"></a>00570             <a class="code" href="classpartie.html#a420893a3747896875a748834c1bbdc32" title="Permet d&amp;#39;ajouter un nouveau joueur à la partie.">ajouterNouvelleConnection</a>( s );
<a name="l00571"></a>00571         }
<a name="l00572"></a>00572         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#acf92891d022c8c20e68b634ba1701757" title="Modifier le temps d&amp;#39;attente d&amp;#39;une réponse.">setWait</a>(0,1000);<span class="comment">// 0.001 secondes</span>
<a name="l00573"></a>00573     }
<a name="l00574"></a>00574     <span class="comment">//##########################################################################</span>
<a name="l00575"></a>00575     <span class="comment">//##########################################################################</span>
<a name="l00576"></a>00576 
<a name="l00577"></a>00577     <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a> = clock() + 2*60*CLOCKS_PER_SEC+30*CLOCKS_PER_SEC;<span class="comment">// 2min:30</span>
<a name="l00578"></a>00578 
<a name="l00579"></a>00579     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a07002cd38b9e91b9cc306606db34c632">CNX_Host</a> ){<span class="comment">// Si on est en mode serveur alors on connecte le serveur</span>
<a name="l00580"></a>00580         <span class="comment">// Envoie du timer à tout les players !</span>
<a name="l00581"></a>00581         <span class="keywordflow">for</span>( i=0; i&lt;c_nb_joueurs; i++ )
<a name="l00582"></a>00582         {
<a name="l00583"></a>00583             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal() &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket() != INVALID_SOCKET ){
<a name="l00584"></a>00584                 <span class="comment">// Envoie du timer</span>
<a name="l00585"></a>00585                 sprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;9:%ld²&quot;</span>, <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a>-clock());
<a name="l00586"></a>00586                 <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l00587"></a>00587                 strcpy(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;0:end&quot;</span>);
<a name="l00588"></a>00588                 <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( s, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Fin de transmition</span>
<a name="l00589"></a>00589             }
<a name="l00590"></a>00590         }
<a name="l00591"></a>00591     }
<a name="l00592"></a>00592 
<a name="l00593"></a>00593     <span class="comment">//-----------------------&gt; Commencement de la partie &lt;----------------------</span>
<a name="l00594"></a>00594     <span class="keywordflow">do</span>{
<a name="l00595"></a>00595         <span class="comment">// Affichage de la map et récéption des Event</span>
<a name="l00596"></a>00596         key = afficherMapEtEvent( <span class="keyword">this</span> );
<a name="l00597"></a>00597 
<a name="l00598"></a>00598         <span class="comment">/***********************************************************************</span>
<a name="l00599"></a>00599 <span class="comment">        * On parcours les joueurs</span>
<a name="l00600"></a>00600 <span class="comment">        */</span>
<a name="l00601"></a>00601         <span class="keywordflow">for</span>( i=0; i&lt;c_nb_joueurs; i++ )
<a name="l00602"></a>00602         {
<a name="l00603"></a>00603             <span class="comment">// Si le joueur est mort, on saut son scan</span>
<a name="l00604"></a>00604             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].armements() ) continue ;
<a name="l00605"></a>00605 
<a name="l00606"></a>00606             <span class="comment">/*******************************************************************</span>
<a name="l00607"></a>00607 <span class="comment">            * Scan des Events bonus de chaques joueurs</span>
<a name="l00608"></a>00608 <span class="comment">            */</span>
<a name="l00609"></a>00609             <span class="keywordtype">bool</span> killPlayer = 0;
<a name="l00610"></a>00610             <span class="keywordflow">while</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].armements()-&gt;isEvent(&amp;bonusEvent) )<span class="comment">// Tanqu&#39;il y a des event on tourne</span>
<a name="l00611"></a>00611             {
<a name="l00612"></a>00612                 <span class="keywordflow">switch</span>( bonusEvent.<a class="code" href="structbonus_1_1s___event.html#a0af6be88afe3e2d6eacbee01f874f1d3" title="Le bonus (4o).">type</a> )
<a name="l00613"></a>00613                 {
<a name="l00614"></a>00614                     <span class="keywordflow">case</span> <a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efacf77abc7c3768ee97c83ef9a57f0707b">bonus::SIGNAL_kill</a>: {
<a name="l00615"></a>00615                         killPlayer = 1;
<a name="l00616"></a>00616                         <span class="keywordflow">break</span>;
<a name="l00617"></a>00617                     }
<a name="l00618"></a>00618                     <span class="keywordflow">case</span> <a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa5377d867e4dcd5d8e6656217d02fdc9f">bonus::bombe</a>: {
<a name="l00619"></a>00619                         e.<a class="code" href="structpartie_1_1s___event_bombe.html#a4fe3f1be04c668bce6931ce89da49767" title="Le joueur qui est la cause de l&amp;#39;event.">joueur</a> = i+1;
<a name="l00620"></a>00620                         e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a> = bonusEvent.<a class="code" href="structbonus_1_1s___event.html#a537a74c981803a9765bbf41dd60301a8" title="Position de la bombe posé (8o).">pos</a>;
<a name="l00621"></a>00621                         e.<a class="code" href="structpartie_1_1s___event_bombe.html#ab02ea3876b8cead2d2aa77b294f2acc7" title="Time de la prochaine répétion.">repetionSuivante</a> = 0;
<a name="l00622"></a>00622                         e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a> = 0;
<a name="l00623"></a>00623                         e.<a class="code" href="structpartie_1_1s___event_bombe.html#a243f3673f6e8c001dd287682f4faa7ea" title="Nombre de répétition MAX pour l&amp;#39;event.">Nb_Repetition_MAX</a> = <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a6d080874a788cfacfb23c9a03733709a" title="Renvoie la quantité utilisatble d&amp;#39;un bonus.">quantiteUtilisable</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa3758eac4c25825d7f7cb8f5ec4bc610e">bonus::puissance_flamme</a>);
<a name="l00624"></a>00624                         e.<a class="code" href="structpartie_1_1s___event_bombe.html#a760f3e827ce08e7b59f74abf166e241d">continue_X</a> = <span class="keyword">true</span>;
<a name="l00625"></a>00625                         e.<a class="code" href="structpartie_1_1s___event_bombe.html#a6f956e28d94e9da3948d068d45c77402">continue_negativeX</a> = <span class="keyword">true</span>;
<a name="l00626"></a>00626                         e.<a class="code" href="structpartie_1_1s___event_bombe.html#adb2b43bd211a7c7a9d24ed1284ebe722">continue_Y</a> = <span class="keyword">true</span>;
<a name="l00627"></a>00627                         e.<a class="code" href="structpartie_1_1s___event_bombe.html#a8f96500c47c056f4354dbb902b485567">continue_negativeY</a> = <span class="keyword">true</span>;
<a name="l00628"></a>00628                         <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.push_back( e );
<a name="l00629"></a>00629                         <span class="keywordflow">break</span>;
<a name="l00630"></a>00630                     }
<a name="l00631"></a>00631                     <span class="keywordflow">default</span>:
<a name="l00632"></a>00632                         stdError(<span class="stringliteral">&quot;Event bonus non pris en charge bonus=%d&quot;</span>, bonusEvent.<a class="code" href="structbonus_1_1s___event.html#a0af6be88afe3e2d6eacbee01f874f1d3" title="Le bonus (4o).">type</a>);
<a name="l00633"></a>00633                         <span class="keywordflow">break</span>;
<a name="l00634"></a>00634                 }
<a name="l00635"></a>00635             }
<a name="l00636"></a>00636             <span class="comment">// On a reçut le signal kill =&gt; On kill le perso</span>
<a name="l00637"></a>00637             <span class="keywordflow">if</span>( killPlayer )
<a name="l00638"></a>00638                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#aa19fd01c37bed0b375dcc4362be08ed1" title="Modif l&amp;#39;armement du perso.">defArmements</a>(0);
<a name="l00639"></a>00639 
<a name="l00640"></a>00640             <span class="comment">/*******************************************************************</span>
<a name="l00641"></a>00641 <span class="comment">            * Scan du clavier pour les joueurs</span>
<a name="l00642"></a>00642 <span class="comment">            */</span>
<a name="l00643"></a>00643             <span class="keywordflow">if</span>( continuerScanClavier == 1 &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal() )
<a name="l00644"></a>00644             <span class="keywordflow">switch</span>( opt-&gt;<a class="code" href="classoptions.html#a281d1464d4a4c827bcbac56ab3c9be94" title="Renvoie le clavier numéro {clavier_numero}.">clavierJoueur</a>(i)-&gt;<a class="code" href="classclavier.html#a8c811ee0dbf6c9aa42d013c0794291ef" title="Détermine si la touche tsys envoyée fait partie des actions de ce clavier.">obtenirTouche</a>(key) )
<a name="l00645"></a>00645             {
<a name="l00646"></a>00646                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a6b4d36333878cb8bda9ab4d119cd4e75" title="En cas de bug.">clavier::NUL</a>: {
<a name="l00647"></a>00647                     continuerScanClavier = 1;
<a name="l00648"></a>00648                     <span class="keywordflow">break</span>;
<a name="l00649"></a>00649                 }
<a name="l00650"></a>00650                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a8231b289f48a99aa410bbbeff3bd9b8e">clavier::haut</a>: {
<a name="l00651"></a>00651                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a1b34094c6f485175dfe7ddcfc58c3534" title="Modif l&amp;#39;orientation du perso.">defOrientation</a>(<a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5a634b23e64a1d353fdda76a2ec18248f4">perso::ORI_haut</a>);
<a name="l00652"></a>00652                     <a class="code" href="classpartie.html#ae53ebc443767800289bf20b4123d6db1" title="Test si un personnage peut se déplacer à un endroit. Si on peut déplacer le perso dans la zone demand...">deplacer_le_Perso_A</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y()-1, i );
<a name="l00653"></a>00653                     <span class="comment">// Suplace pour afficher les mouvement de rotation lorsque le perso ne bouge pas vraiment</span>
<a name="l00654"></a>00654                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element);
<a name="l00655"></a>00655                     continuerScanClavier = 0;
<a name="l00656"></a>00656                     envoyerInfoJoueur = 1;
<a name="l00657"></a>00657                     <span class="keywordflow">break</span>;
<a name="l00658"></a>00658                 }
<a name="l00659"></a>00659                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a11ae41a3ad78c2ca0e17684d62ab8a0a">clavier::bas</a>: {
<a name="l00660"></a>00660                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a1b34094c6f485175dfe7ddcfc58c3534" title="Modif l&amp;#39;orientation du perso.">defOrientation</a>(<a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5aa59f5203b5e142fa7a139b875240ccb7">perso::ORI_bas</a>);
<a name="l00661"></a>00661                     <a class="code" href="classpartie.html#ae53ebc443767800289bf20b4123d6db1" title="Test si un personnage peut se déplacer à un endroit. Si on peut déplacer le perso dans la zone demand...">deplacer_le_Perso_A</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y()+1, i );
<a name="l00662"></a>00662                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element);
<a name="l00663"></a>00663                     continuerScanClavier = 0;
<a name="l00664"></a>00664                     envoyerInfoJoueur = 1;
<a name="l00665"></a>00665                     <span class="keywordflow">break</span>;
<a name="l00666"></a>00666                 }
<a name="l00667"></a>00667                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a02c98200c93bcecacd095997b8ae558a">clavier::droite</a>: {
<a name="l00668"></a>00668                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a1b34094c6f485175dfe7ddcfc58c3534" title="Modif l&amp;#39;orientation du perso.">defOrientation</a>(<a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5ab3e12149a43ed9f6c1ed651c7b7130a5">perso::ORI_droite</a>);
<a name="l00669"></a>00669                     <a class="code" href="classpartie.html#ae53ebc443767800289bf20b4123d6db1" title="Test si un personnage peut se déplacer à un endroit. Si on peut déplacer le perso dans la zone demand...">deplacer_le_Perso_A</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X()+1, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i );
<a name="l00670"></a>00670                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element);
<a name="l00671"></a>00671                     continuerScanClavier = 0;
<a name="l00672"></a>00672                     envoyerInfoJoueur = 1;
<a name="l00673"></a>00673                     <span class="keywordflow">break</span>;
<a name="l00674"></a>00674                 }
<a name="l00675"></a>00675                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165af13384e0a20ef0b70ff3f04e41879df7">clavier::gauche</a>: {
<a name="l00676"></a>00676                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a1b34094c6f485175dfe7ddcfc58c3534" title="Modif l&amp;#39;orientation du perso.">defOrientation</a>(<a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5ab905cf580d7a21ed24b5917ddc8fe517">perso::ORI_gauche</a>);
<a name="l00677"></a>00677                     <a class="code" href="classpartie.html#ae53ebc443767800289bf20b4123d6db1" title="Test si un personnage peut se déplacer à un endroit. Si on peut déplacer le perso dans la zone demand...">deplacer_le_Perso_A</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X()-1, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i );
<a name="l00678"></a>00678                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element);
<a name="l00679"></a>00679                     continuerScanClavier = 0;
<a name="l00680"></a>00680                     envoyerInfoJoueur = 1;
<a name="l00681"></a>00681                     <span class="keywordflow">break</span>;
<a name="l00682"></a>00682                 }
<a name="l00683"></a>00683                 <span class="comment">/***************************************************************</span>
<a name="l00684"></a>00684 <span class="comment">                * On veux poser une bombe</span>
<a name="l00685"></a>00685 <span class="comment">                */</span>
<a name="l00686"></a>00686                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165ab7a4a8f874823e415ac1fd56e450a4b8">clavier::lancerBombe</a>: {
<a name="l00687"></a>00687                     <span class="comment">/***********************************************************</span>
<a name="l00688"></a>00688 <span class="comment">                    * IL NE RESTE PAS DE BOMBE EN STOCK</span>
<a name="l00689"></a>00689 <span class="comment">                    */</span>
<a name="l00690"></a>00690                     <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].armements()-&gt;quantiteUtilisable(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa5377d867e4dcd5d8e6656217d02fdc9f">bonus::bombe</a>) )
<a name="l00691"></a>00691                         <span class="keywordflow">break</span>;
<a name="l00692"></a>00692                     <span class="comment">/***********************************************************</span>
<a name="l00693"></a>00693 <span class="comment">                    * Il reste des bombes à poser -&gt;</span>
<a name="l00694"></a>00694 <span class="comment">                    * 2 Posibilités:</span>
<a name="l00695"></a>00695 <span class="comment">                    * 1) Il n&#39;y a que le joueur qui veut poser la bombe</span>
<a name="l00696"></a>00696 <span class="comment">                    * 2) Il y a plusieurs joueurs</span>
<a name="l00697"></a>00697 <span class="comment">                    */</span>
<a name="l00698"></a>00698                     <span class="keywordflow">switch</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element )<span class="comment">// Utilisation d&#39;un switch pour la rapidité ( en asm ebx modifié une fois =&gt; plus rapide )</span>
<a name="l00699"></a>00699                     {
<a name="l00700"></a>00700                         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>: {
<a name="l00701"></a>00701                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba278e9245c0e1cfb455511d27114dc830">map::bombe_poser_AVEC_UN_joueur</a> );
<a name="l00702"></a>00702                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i+1, 1 );<span class="comment">// Ajout de l&#39;info &gt; Mais qui a donc posé la bombe ...</span>
<a name="l00703"></a>00703                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a09ddd6bcfc30cc20ee55f41ee1885136" title="Décrémente quantite_utilisable.">decQuantiteUtilisable</a>( <a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa5377d867e4dcd5d8e6656217d02fdc9f">bonus::bombe</a>, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y() );
<a name="l00704"></a>00704                             <span class="keywordflow">break</span>;
<a name="l00705"></a>00705                         }
<a name="l00706"></a>00706                         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469baa94a2d9d84a636b26e656df3e5ae16b8">map::plusieurs_joueurs</a>: {
<a name="l00707"></a>00707                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba7eeb793973ee8e2ce702d82fbcd9d759">map::bombe_poser_AVEC_plusieurs_joueurs</a> );
<a name="l00708"></a>00708                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i+1, 1 );<span class="comment">// Ajout de l&#39;info &gt; Mais qui a donc posé la bombe ...</span>
<a name="l00709"></a>00709                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a09ddd6bcfc30cc20ee55f41ee1885136" title="Décrémente quantite_utilisable.">decQuantiteUtilisable</a>( <a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa5377d867e4dcd5d8e6656217d02fdc9f">bonus::bombe</a>, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y() );
<a name="l00710"></a>00710                             <span class="keywordflow">break</span>;
<a name="l00711"></a>00711                         }
<a name="l00712"></a>00712                         <span class="keywordflow">default</span>: {<span class="comment">// On ne pose pas la bombe ! On a pas les conditions réuni</span>
<a name="l00713"></a>00713                             <span class="keywordflow">break</span>;
<a name="l00714"></a>00714                         }
<a name="l00715"></a>00715                     }
<a name="l00716"></a>00716                     continuerScanClavier = 0;
<a name="l00717"></a>00717                     <span class="keywordflow">break</span>;
<a name="l00718"></a>00718                 }
<a name="l00719"></a>00719                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a25f40f7924d6289a172be3c154768918">clavier::declancheur</a>: {
<a name="l00720"></a>00720                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].armements()-&gt;quantiteUtilisable(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efaf580f32a0c46beb866416ad197e19757">bonus::declancheur</a>) )
<a name="l00721"></a>00721                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ac503bb19af6f4486c412d011e20bd97e" title="Met fin au temps d&amp;#39;attente de tout les event.">forceTimeOut</a>();
<a name="l00722"></a>00722                     continuerScanClavier = 0;
<a name="l00723"></a>00723                     <span class="keywordflow">break</span>;
<a name="l00724"></a>00724                 }
<a name="l00725"></a>00725                 <span class="keywordflow">default</span>: {
<a name="l00726"></a>00726                     stdErrorE(<span class="stringliteral">&quot;Touche envoyé par le joueur %d est inconnue : %d&quot;</span>, (<span class="keywordtype">int</span>)opt-&gt;<a class="code" href="classoptions.html#a281d1464d4a4c827bcbac56ab3c9be94" title="Renvoie le clavier numéro {clavier_numero}.">clavierJoueur</a>(i)-&gt;<a class="code" href="classclavier.html#a8c811ee0dbf6c9aa42d013c0794291ef" title="Détermine si la touche tsys envoyée fait partie des actions de ce clavier.">obtenirTouche</a>(key), (int)key);
<a name="l00727"></a>00727                     <span class="keywordflow">break</span>;
<a name="l00728"></a>00728                 }
<a name="l00729"></a>00729             }
<a name="l00730"></a>00730         }
<a name="l00731"></a>00731 
<a name="l00732"></a>00732         <span class="comment">/*######################################################################</span>
<a name="l00733"></a>00733 <span class="comment">        * Traitement des connections ( HOST )</span>
<a name="l00734"></a>00734 <span class="comment">        */</span>
<a name="l00735"></a>00735         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a07002cd38b9e91b9cc306606db34c632">CNX_Host</a> ){
<a name="l00736"></a>00736             <span class="comment">// Ajout des players</span>
<a name="l00737"></a>00737             <span class="keywordflow">while</span>( (s = <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a970c338624781ad9b8db82d0e853210f" title="Envoie une message (buffer) au client.">lookupNewConnection</a>()) != INVALID_SOCKET )
<a name="l00738"></a>00738                 <a class="code" href="classpartie.html#a420893a3747896875a748834c1bbdc32" title="Permet d&amp;#39;ajouter un nouveau joueur à la partie.">ajouterNouvelleConnection</a>( s );<span class="comment">// Nouveau joueur !</span>
<a name="l00739"></a>00739 
<a name="l00740"></a>00740             <span class="keywordflow">for</span>( i=0; i&lt;c_nb_joueurs; i++ )
<a name="l00741"></a>00741             {
<a name="l00742"></a>00742                 <span class="comment">// Si le joueur est local où non connecté, on passe</span>
<a name="l00743"></a>00743                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal() || <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket() == INVALID_SOCKET )
<a name="l00744"></a>00744                     <span class="keywordflow">continue</span>;
<a name="l00745"></a>00745 
<a name="l00746"></a>00746                 <span class="comment">// Si il y a une activité coté réseau, on la traite</span>
<a name="l00747"></a>00747                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a3760ed7ce751244c5e14838fa9c0b991" title="Recherche une activité pour le client.">lookupConnectionClient</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a33ea05f68d9ddf2cf242b9b19c8b1ceb" title="Renvoie le socket utilisé (Par defaut: INVALID_SOCKET).">socket</a>()) ){
<a name="l00748"></a>00748                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a3958ab35efdf8daed31591a7c5c4eacb" title="Récupère les données envoyées par un client.">readClient</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a33ea05f68d9ddf2cf242b9b19c8b1ceb" title="Renvoie le socket utilisé (Par defaut: INVALID_SOCKET).">socket</a>(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, PACK_bufferSize) ){
<a name="l00749"></a>00749 
<a name="l00750"></a>00750                         <span class="comment">// Traitement du clavier des joueurs online</span>
<a name="l00751"></a>00751                         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].armements() ){
<a name="l00752"></a>00752 
<a name="l00753"></a>00753                             <span class="comment">// On récup la touche</span>
<a name="l00754"></a>00754                             <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">unPackIt</a>( &amp;onlineClavier );
<a name="l00755"></a>00755 
<a name="l00756"></a>00756                             <span class="keywordflow">switch</span>( onlineClavier )
<a name="l00757"></a>00757                             {
<a name="l00758"></a>00758                                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a8231b289f48a99aa410bbbeff3bd9b8e">clavier::haut</a>: {
<a name="l00759"></a>00759                                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a1b34094c6f485175dfe7ddcfc58c3534" title="Modif l&amp;#39;orientation du perso.">defOrientation</a>(<a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5a634b23e64a1d353fdda76a2ec18248f4">perso::ORI_haut</a>);
<a name="l00760"></a>00760                                     <a class="code" href="classpartie.html#ae53ebc443767800289bf20b4123d6db1" title="Test si un personnage peut se déplacer à un endroit. Si on peut déplacer le perso dans la zone demand...">deplacer_le_Perso_A</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y()-1, i );
<a name="l00761"></a>00761                                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element);
<a name="l00762"></a>00762                                     envoyerInfoJoueur = 1;
<a name="l00763"></a>00763                                     <span class="keywordflow">break</span>;
<a name="l00764"></a>00764                                 }
<a name="l00765"></a>00765                                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a11ae41a3ad78c2ca0e17684d62ab8a0a">clavier::bas</a>: {
<a name="l00766"></a>00766                                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a1b34094c6f485175dfe7ddcfc58c3534" title="Modif l&amp;#39;orientation du perso.">defOrientation</a>(<a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5aa59f5203b5e142fa7a139b875240ccb7">perso::ORI_bas</a>);
<a name="l00767"></a>00767                                     <a class="code" href="classpartie.html#ae53ebc443767800289bf20b4123d6db1" title="Test si un personnage peut se déplacer à un endroit. Si on peut déplacer le perso dans la zone demand...">deplacer_le_Perso_A</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y()+1, i );
<a name="l00768"></a>00768                                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element);
<a name="l00769"></a>00769                                     envoyerInfoJoueur = 1;
<a name="l00770"></a>00770                                     <span class="keywordflow">break</span>;
<a name="l00771"></a>00771                                 }
<a name="l00772"></a>00772                                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a02c98200c93bcecacd095997b8ae558a">clavier::droite</a>: {
<a name="l00773"></a>00773                                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a1b34094c6f485175dfe7ddcfc58c3534" title="Modif l&amp;#39;orientation du perso.">defOrientation</a>(<a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5ab3e12149a43ed9f6c1ed651c7b7130a5">perso::ORI_droite</a>);
<a name="l00774"></a>00774                                     <a class="code" href="classpartie.html#ae53ebc443767800289bf20b4123d6db1" title="Test si un personnage peut se déplacer à un endroit. Si on peut déplacer le perso dans la zone demand...">deplacer_le_Perso_A</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X()+1, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i );
<a name="l00775"></a>00775                                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element);
<a name="l00776"></a>00776                                     envoyerInfoJoueur = 1;
<a name="l00777"></a>00777                                     <span class="keywordflow">break</span>;
<a name="l00778"></a>00778                                 }
<a name="l00779"></a>00779                                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165af13384e0a20ef0b70ff3f04e41879df7">clavier::gauche</a>: {
<a name="l00780"></a>00780                                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a1b34094c6f485175dfe7ddcfc58c3534" title="Modif l&amp;#39;orientation du perso.">defOrientation</a>(<a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5ab905cf580d7a21ed24b5917ddc8fe517">perso::ORI_gauche</a>);
<a name="l00781"></a>00781                                     <a class="code" href="classpartie.html#ae53ebc443767800289bf20b4123d6db1" title="Test si un personnage peut se déplacer à un endroit. Si on peut déplacer le perso dans la zone demand...">deplacer_le_Perso_A</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X()-1, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i );
<a name="l00782"></a>00782                                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element);
<a name="l00783"></a>00783                                     envoyerInfoJoueur = 1;
<a name="l00784"></a>00784                                     <span class="keywordflow">break</span>;
<a name="l00785"></a>00785                                 }
<a name="l00786"></a>00786                                 <span class="comment">/***************************************************************</span>
<a name="l00787"></a>00787 <span class="comment">                                * On veux poser une bombe</span>
<a name="l00788"></a>00788 <span class="comment">                                */</span>
<a name="l00789"></a>00789                                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165ab7a4a8f874823e415ac1fd56e450a4b8">clavier::lancerBombe</a>: {
<a name="l00790"></a>00790                                     <span class="comment">/***********************************************************</span>
<a name="l00791"></a>00791 <span class="comment">                                    * IL NE RESTE PAS DE BOMBE EN STOCK</span>
<a name="l00792"></a>00792 <span class="comment">                                    */</span>
<a name="l00793"></a>00793                                     <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].armements()-&gt;quantiteUtilisable(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa5377d867e4dcd5d8e6656217d02fdc9f">bonus::bombe</a>) )
<a name="l00794"></a>00794                                         <span class="keywordflow">break</span>;
<a name="l00795"></a>00795                                     <span class="comment">/***********************************************************</span>
<a name="l00796"></a>00796 <span class="comment">                                    * Il reste des bombes à poser -&gt;</span>
<a name="l00797"></a>00797 <span class="comment">                                    * 2 Posibilités:</span>
<a name="l00798"></a>00798 <span class="comment">                                    * 1) Il n&#39;y a que le joueur qui veut poser la bombe</span>
<a name="l00799"></a>00799 <span class="comment">                                    * 2) Il y a plusieurs joueurs</span>
<a name="l00800"></a>00800 <span class="comment">                                    */</span>
<a name="l00801"></a>00801                                     <span class="keywordflow">switch</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element )<span class="comment">// Utilisation d&#39;un switch pour la rapidité ( en asm ebx modifié une fois =&gt; plus rapide )</span>
<a name="l00802"></a>00802                                     {
<a name="l00803"></a>00803                                         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>:{
<a name="l00804"></a>00804                                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba278e9245c0e1cfb455511d27114dc830">map::bombe_poser_AVEC_UN_joueur</a> );
<a name="l00805"></a>00805                                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i+1, 1 );<span class="comment">// Ajout de l&#39;info &gt; Mais qui a donc posé la bombe ...</span>
<a name="l00806"></a>00806                                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a09ddd6bcfc30cc20ee55f41ee1885136" title="Décrémente quantite_utilisable.">decQuantiteUtilisable</a>( <a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa5377d867e4dcd5d8e6656217d02fdc9f">bonus::bombe</a>, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y() );
<a name="l00807"></a>00807                                             <span class="keywordflow">break</span>;
<a name="l00808"></a>00808                                         }
<a name="l00809"></a>00809                                         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469baa94a2d9d84a636b26e656df3e5ae16b8">map::plusieurs_joueurs</a>: {
<a name="l00810"></a>00810                                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba7eeb793973ee8e2ce702d82fbcd9d759">map::bombe_poser_AVEC_plusieurs_joueurs</a> );
<a name="l00811"></a>00811                                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i+1, 1 );<span class="comment">// Ajout de l&#39;info &gt; Mais qui a donc posé la bombe ...</span>
<a name="l00812"></a>00812                                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a09ddd6bcfc30cc20ee55f41ee1885136" title="Décrémente quantite_utilisable.">decQuantiteUtilisable</a>( <a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa5377d867e4dcd5d8e6656217d02fdc9f">bonus::bombe</a>, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y() );
<a name="l00813"></a>00813                                             <span class="keywordflow">break</span>;
<a name="l00814"></a>00814                                         }
<a name="l00815"></a>00815                                         <span class="keywordflow">default</span>: {<span class="comment">// On ne pose pas la bombe ! On a pas les conditions réuni</span>
<a name="l00816"></a>00816                                             <span class="keywordflow">break</span>;
<a name="l00817"></a>00817                                         }
<a name="l00818"></a>00818                                     }
<a name="l00819"></a>00819                                     <span class="keywordflow">break</span>;
<a name="l00820"></a>00820                                 }
<a name="l00821"></a>00821                                 <span class="keywordflow">case</span> <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165a25f40f7924d6289a172be3c154768918">clavier::declancheur</a>: {
<a name="l00822"></a>00822                                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].armements()-&gt;quantiteUtilisable(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efaf580f32a0c46beb866416ad197e19757">bonus::declancheur</a>) )
<a name="l00823"></a>00823                                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ac503bb19af6f4486c412d011e20bd97e" title="Met fin au temps d&amp;#39;attente de tout les event.">forceTimeOut</a>();
<a name="l00824"></a>00824                                     <span class="keywordflow">break</span>;
<a name="l00825"></a>00825                                 }
<a name="l00826"></a>00826                                 <span class="keywordflow">default</span>: {
<a name="l00827"></a>00827                                     stdErrorE(<span class="stringliteral">&quot;Touche envoyé par le joueur %d est inconnue : %d&quot;</span>, (<span class="keywordtype">int</span>)opt-&gt;<a class="code" href="classoptions.html#a281d1464d4a4c827bcbac56ab3c9be94" title="Renvoie le clavier numéro {clavier_numero}.">clavierJoueur</a>(i)-&gt;<a class="code" href="classclavier.html#a8c811ee0dbf6c9aa42d013c0794291ef" title="Détermine si la touche tsys envoyée fait partie des actions de ce clavier.">obtenirTouche</a>(key), (int)key);
<a name="l00828"></a>00828                                     <span class="keywordflow">break</span>;
<a name="l00829"></a>00829                                 }
<a name="l00830"></a>00830                             }
<a name="l00831"></a>00831                         }
<a name="l00832"></a>00832                     }<span class="keywordflow">else</span>{
<a name="l00833"></a>00833                         <span class="comment">/*******************************************************</span>
<a name="l00834"></a>00834 <span class="comment">                        * Le joueur s&#39;est déco. =&gt; Place propre</span>
<a name="l00835"></a>00835 <span class="comment">                        */</span>
<a name="l00836"></a>00836                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#ad5afe81f43724128d79b57acfabcda3a" title="Permet de definir le socket utilisé par le perso.">defSocket</a>(INVALID_SOCKET);
<a name="l00837"></a>00837                         <span class="keywordflow">switch</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element )
<a name="l00838"></a>00838                         {
<a name="l00839"></a>00839                             <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>: {
<a name="l00840"></a>00840                                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a> );
<a name="l00841"></a>00841                                 <span class="keywordflow">break</span>;
<a name="l00842"></a>00842                             }
<a name="l00843"></a>00843                             <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469baa94a2d9d84a636b26e656df3e5ae16b8">map::plusieurs_joueurs</a>: {
<a name="l00844"></a>00844                                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i+1, 1 );
<a name="l00845"></a>00845                                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a> );
<a name="l00846"></a>00846                                 <span class="keywordflow">break</span>;
<a name="l00847"></a>00847                             }
<a name="l00848"></a>00848                             <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba278e9245c0e1cfb455511d27114dc830">map::bombe_poser_AVEC_UN_joueur</a>: {
<a name="l00849"></a>00849                                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i+1, 1 );
<a name="l00850"></a>00850                                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;<a class="code" href="classpartie.html#aa259db60507f45e2307fa457879be8ee" title="Renvoie un joueur.">joueur</a>-&gt;size() )
<a name="l00851"></a>00851                                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>(), map::bombe_poser );
<a name="l00852"></a>00852                                 <span class="keywordflow">else</span>
<a name="l00853"></a>00853                                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a> );
<a name="l00854"></a>00854                                 <span class="keywordflow">break</span>;
<a name="l00855"></a>00855                             }
<a name="l00856"></a>00856                             <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba7eeb793973ee8e2ce702d82fbcd9d759">map::bombe_poser_AVEC_plusieurs_joueurs</a>: {
<a name="l00857"></a>00857                                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;<a class="code" href="classpartie.html#aa259db60507f45e2307fa457879be8ee" title="Renvoie un joueur.">joueur</a>-&gt;at(0) == i+1 ){<span class="comment">// Si la bombe appartien au joueur, on la vire</span>
<a name="l00858"></a>00858                                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;<a class="code" href="classpartie.html#aa259db60507f45e2307fa457879be8ee" title="Renvoie un joueur.">joueur</a>-&gt;size()-2 == 1 )
<a name="l00859"></a>00859                                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>(), map::UN_joueur );
<a name="l00860"></a>00860                                     <span class="keywordflow">else</span>
<a name="l00861"></a>00861                                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469baa94a2d9d84a636b26e656df3e5ae16b8">map::plusieurs_joueurs</a> );
<a name="l00862"></a>00862                                 }<span class="keywordflow">else</span>{
<a name="l00863"></a>00863                                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;<a class="code" href="classpartie.html#aa259db60507f45e2307fa457879be8ee" title="Renvoie un joueur.">joueur</a>-&gt;size()-1 == 1 )
<a name="l00864"></a>00864                                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>(), map::bombe_poser_AVEC_UN_joueur );
<a name="l00865"></a>00865                                     <span class="keywordflow">else</span>
<a name="l00866"></a>00866                                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba7eeb793973ee8e2ce702d82fbcd9d759">map::bombe_poser_AVEC_plusieurs_joueurs</a> );
<a name="l00867"></a>00867                                 }
<a name="l00868"></a>00868 
<a name="l00869"></a>00869                                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].Y(), i+1, 1 );
<a name="l00870"></a>00870                                 <span class="keywordflow">break</span>;
<a name="l00871"></a>00871                             }
<a name="l00872"></a>00872                             <span class="keywordflow">default</span>: {
<a name="l00873"></a>00873                                 stdError(<span class="stringliteral">&quot;Erreur ! Condition non traité %d&quot;</span>, <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element);
<a name="l00874"></a>00874                                 <span class="keywordflow">break</span>;
<a name="l00875"></a>00875                             }
<a name="l00876"></a>00876                         }
<a name="l00877"></a>00877                         <span class="comment">// Nétoyage des Events</span>
<a name="l00878"></a>00878                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a4a1eb4f717e5b65a8a87599b2dbbf262" title="La liste des events non terminé.">modEvent</a>()-&gt;clear();
<a name="l00879"></a>00879                         <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> h=0; h&lt;<a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.size(); h++ )
<a name="l00880"></a>00880                         {
<a name="l00881"></a>00881                             <span class="comment">// Si l&#39;évent correspond à l&#39;event du joueur =&gt; clean all</span>
<a name="l00882"></a>00882                             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(h).joueur == i ){
<a name="l00883"></a>00883                                 <span class="comment">// Suppression des blocks en-flammé</span>
<a name="l00884"></a>00884                                 <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k=0; k&lt;<a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(h).deflagration.size(); k++ )
<a name="l00885"></a>00885                                 {
<a name="l00886"></a>00886                                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(<a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(h).deflagration.at(k).x, <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(h).deflagration.at(k).y, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a4fe3f1be04c668bce6931ce89da49767" title="Le joueur qui est la cause de l&amp;#39;event.">joueur</a>, <span class="keyword">true</span>);
<a name="l00887"></a>00887                                     <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(h).deflagration.at(k))-&gt;<a class="code" href="classpartie.html#aa259db60507f45e2307fa457879be8ee" title="Renvoie un joueur.">joueur</a>-&gt;size() )
<a name="l00888"></a>00888                                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(h).deflagration.at(k), map::vide);
<a name="l00889"></a>00889                                 }
<a name="l00890"></a>00890                             }
<a name="l00891"></a>00891                         }
<a name="l00892"></a>00892                         <span class="comment">// On peut supprimer sans problème les armements</span>
<a name="l00893"></a>00893                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#aa19fd01c37bed0b375dcc4362be08ed1" title="Modif l&amp;#39;armement du perso.">defArmements</a>(0);
<a name="l00894"></a>00894 
<a name="l00895"></a>00895                         <span class="comment">// Envoie des info joueurs à tout les players !</span>
<a name="l00896"></a>00896                         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nb_joueur=0;
<a name="l00897"></a>00897                         <span class="keywordflow">for</span>( j=0; j&lt;c_nb_joueurs; j++ ){
<a name="l00898"></a>00898                             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].isLocal() ){
<a name="l00899"></a>00899                                 nb_joueur++;
<a name="l00900"></a>00900                             }<span class="keywordflow">else</span>{<span class="comment">// isLocal() == false</span>
<a name="l00901"></a>00901                                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].socket() != INVALID_SOCKET )
<a name="l00902"></a>00902                                     nb_joueur++;
<a name="l00903"></a>00903                             }
<a name="l00904"></a>00904                         }
<a name="l00905"></a>00905 
<a name="l00906"></a>00906                         <span class="keywordflow">for</span>( j=0; j&lt;c_nb_joueurs; j++ )
<a name="l00907"></a>00907                         {
<a name="l00908"></a>00908                             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].isLocal() &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].socket() != INVALID_SOCKET ){
<a name="l00909"></a>00909                                 <span class="comment">// Envoie du nouveau nombre de joueur</span>
<a name="l00910"></a>00910                                 sprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;5:%d&quot;</span>, nb_joueur);
<a name="l00911"></a>00911                                 <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l00912"></a>00912 
<a name="l00913"></a>00913                                 <span class="comment">// Envoie des données du joueur</span>
<a name="l00914"></a>00914                                 <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> k=0; k&lt;c_nb_joueurs; k++ ){
<a name="l00915"></a>00915                                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[k].isLocal() || (!<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[k].isLocal() &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[k].socket() != INVALID_SOCKET) ){
<a name="l00916"></a>00916                                         <span class="keywordflow">if</span>( j == k ){
<a name="l00917"></a>00917                                             <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>( k, <span class="keyword">true</span> );
<a name="l00918"></a>00918                                         }<span class="keywordflow">else</span>{
<a name="l00919"></a>00919                                             <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>( k, <span class="keyword">false</span> );
<a name="l00920"></a>00920                                         }
<a name="l00921"></a>00921                                         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Fin de transmition de map</span>
<a name="l00922"></a>00922                                     }
<a name="l00923"></a>00923                                 }
<a name="l00924"></a>00924 
<a name="l00925"></a>00925                                 sprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;8:%d&quot;</span>, i);<span class="comment">// On dit quel joueur à supprimer</span>
<a name="l00926"></a>00926                                 <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l00927"></a>00927 
<a name="l00928"></a>00928 
<a name="l00929"></a>00929                                 strcpy(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;0:end&quot;</span>);
<a name="l00930"></a>00930                                 <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Fin de transmition</span>
<a name="l00931"></a>00931                             }
<a name="l00932"></a>00932                         }
<a name="l00933"></a>00933                     }
<a name="l00934"></a>00934                 }
<a name="l00935"></a>00935             }
<a name="l00936"></a>00936 
<a name="l00937"></a>00937             <span class="comment">/*******************************************************************</span>
<a name="l00938"></a>00938 <span class="comment">            * Scan des Events interne</span>
<a name="l00939"></a>00939 <span class="comment">            */</span>
<a name="l00940"></a>00940             <a class="code" href="classpartie.html#aee9a20735d2ef1811b44b6b535950189" title="Analyse et traite les Event internes pour une partie F4A.">checkInternalEvent</a>();
<a name="l00941"></a>00941 
<a name="l00942"></a>00942 
<a name="l00943"></a>00943             <span class="comment">/*******************************************************************</span>
<a name="l00944"></a>00944 <span class="comment">            * On envoie les modif faite sur la map au players online.</span>
<a name="l00945"></a>00945 <span class="comment">            */</span>
<a name="l00946"></a>00946             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a3453f2495334983df3bbf1737908e25e" title="Retourne les positions X,Y des case modifiées depuis le dernier cycle.">getModifications</a>()-&gt;size() ){
<a name="l00947"></a>00947                 <span class="keywordflow">for</span>( j=0; j&lt;c_nb_joueurs; j++ ){
<a name="l00948"></a>00948                     <span class="comment">// On récup que les players online</span>
<a name="l00949"></a>00949                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].isLocal() || <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].<a class="code" href="classperso.html#a33ea05f68d9ddf2cf242b9b19c8b1ceb" title="Renvoie le socket utilisé (Par defaut: INVALID_SOCKET).">socket</a>() == INVALID_SOCKET )
<a name="l00950"></a>00950                         <span class="keywordflow">continue</span>;
<a name="l00951"></a>00951 
<a name="l00952"></a>00952                     <span class="keywordflow">for</span>( i=0; i&lt;<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a3453f2495334983df3bbf1737908e25e" title="Retourne les positions X,Y des case modifiées depuis le dernier cycle.">getModifications</a>()-&gt;size(); i++ )
<a name="l00953"></a>00953                     {
<a name="l00954"></a>00954                         X = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a3453f2495334983df3bbf1737908e25e" title="Retourne les positions X,Y des case modifiées depuis le dernier cycle.">getModifications</a>()-&gt;at(i).x;
<a name="l00955"></a>00955                         Y = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a3453f2495334983df3bbf1737908e25e" title="Retourne les positions X,Y des case modifiées depuis le dernier cycle.">getModifications</a>()-&gt;at(i).y;
<a name="l00956"></a>00956                         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].socket(), <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>(X, Y, <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(X, Y)-&gt;element), <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l00957"></a>00957                         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(X, Y)-&gt;joueur &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(X, Y)-&gt;joueur-&gt;size() )
<a name="l00958"></a>00958                             <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].<a class="code" href="classperso.html#a33ea05f68d9ddf2cf242b9b19c8b1ceb" title="Renvoie le socket utilisé (Par defaut: INVALID_SOCKET).">socket</a>(), <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(X, Y)-&gt;joueur ), <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l00959"></a>00959                     }
<a name="l00960"></a>00960                     <span class="keywordflow">if</span>( !envoyerInfoJoueur ){
<a name="l00961"></a>00961                         strcpy(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;0:end&quot;</span>);
<a name="l00962"></a>00962                         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Fin de transmition</span>
<a name="l00963"></a>00963                     }
<a name="l00964"></a>00964                 }
<a name="l00965"></a>00965             }
<a name="l00966"></a>00966 
<a name="l00967"></a>00967 
<a name="l00968"></a>00968             <span class="comment">/*******************************************************************</span>
<a name="l00969"></a>00969 <span class="comment">            * On envoie les infos joueur si besoin est.</span>
<a name="l00970"></a>00970 <span class="comment">            */</span>
<a name="l00971"></a>00971             <span class="keywordflow">if</span>( envoyerInfoJoueur ){
<a name="l00972"></a>00972                 <span class="comment">// Envoie des info joueurs à tout les players !</span>
<a name="l00973"></a>00973                 <span class="keywordflow">for</span>( i=0; i&lt;c_nb_joueurs; i++ )
<a name="l00974"></a>00974                 {
<a name="l00975"></a>00975                     <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal() &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket() != INVALID_SOCKET ){
<a name="l00976"></a>00976                         <span class="comment">// Envoie des données du joueur</span>
<a name="l00977"></a>00977                         <span class="keywordflow">for</span>( j=0; j&lt;c_nb_joueurs; j++ ){
<a name="l00978"></a>00978                             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].isLocal() || (!<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].isLocal() &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].socket() != INVALID_SOCKET) ){
<a name="l00979"></a>00979                                 <span class="keywordflow">if</span>( i == j ){
<a name="l00980"></a>00980                                     <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>( j, <span class="keyword">true</span> );
<a name="l00981"></a>00981                                 }<span class="keywordflow">else</span>{
<a name="l00982"></a>00982                                     <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>( j, <span class="keyword">false</span> );
<a name="l00983"></a>00983                                 }
<a name="l00984"></a>00984                                 <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Fin de transmition de map</span>
<a name="l00985"></a>00985                             }
<a name="l00986"></a>00986                         }
<a name="l00987"></a>00987                         strcpy(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;0:end&quot;</span>);
<a name="l00988"></a>00988                         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Fin de transmition</span>
<a name="l00989"></a>00989                     }
<a name="l00990"></a>00990                 }
<a name="l00991"></a>00991                 envoyerInfoJoueur = 0;
<a name="l00992"></a>00992             }
<a name="l00993"></a>00993         }<span class="keywordflow">else</span>{
<a name="l00994"></a>00994         <span class="comment">//######################################################################</span>
<a name="l00995"></a>00995         <span class="comment">//######################################################################</span>
<a name="l00996"></a>00996 
<a name="l00997"></a>00997             <span class="comment">/*******************************************************************</span>
<a name="l00998"></a>00998 <span class="comment">            * Scan des Events interne</span>
<a name="l00999"></a>00999 <span class="comment">            */</span>
<a name="l01000"></a>01000             <a class="code" href="classpartie.html#aee9a20735d2ef1811b44b6b535950189" title="Analyse et traite les Event internes pour une partie F4A.">checkInternalEvent</a>();
<a name="l01001"></a>01001         }
<a name="l01002"></a>01002 
<a name="l01003"></a>01003         continuerScanClavier = 1;
<a name="l01004"></a>01004 
<a name="l01005"></a>01005     }<span class="keywordflow">while</span>( key != RETOUR_MENU_PRECEDENT &amp;&amp; (<a class="code" href="classpartie.html#a9d770bbd7b907ca0b8ed2f83f6c93adb" title="Renvoie le nombre de joueur en vie.">nbJoueurVivant</a>() &gt; 1 || <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.size()) );
<a name="l01006"></a>01006 
<a name="l01007"></a>01007     <span class="comment">// On détermine, qui a gagné</span>
<a name="l01008"></a>01008     <span class="keywordflow">for</span>( i=0; i&lt;c_nb_joueurs; i++ )
<a name="l01009"></a>01009     {
<a name="l01010"></a>01010         <span class="keywordflow">if</span>( (<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal()
<a name="l01011"></a>01011             || (
<a name="l01012"></a>01012                 !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a73febc8006d08e4414cf6463a3b8ad9d" title="Renvoie l&amp;#39;état du personnage vis à vis du reseau. (Local ou non).">isLocal</a>()
<a name="l01013"></a>01013                 &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a33ea05f68d9ddf2cf242b9b19c8b1ceb" title="Renvoie le socket utilisé (Par defaut: INVALID_SOCKET).">socket</a>() != INVALID_SOCKET
<a name="l01014"></a>01014                 )
<a name="l01015"></a>01015             )
<a name="l01016"></a>01016             &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()
<a name="l01017"></a>01017         ){
<a name="l01018"></a>01018             JoueurGagnant = i+1;<span class="comment">// ( on veut un nombre entre 1 et ... )</span>
<a name="l01019"></a>01019             <a class="code" href="classpartie.html#a1e5f41da1f77f4e44cf5735f224e0388">c_winnerName</a> = *<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a815c8505a10a43da797e0424a0192f92" title="Renvoie le nom du personnage.">nom</a>();
<a name="l01020"></a>01020             <span class="keywordflow">break</span>;
<a name="l01021"></a>01021         }
<a name="l01022"></a>01022     }
<a name="l01023"></a>01023 
<a name="l01024"></a>01024     <span class="comment">// Si on est host, alors, on envoie le nom du gagnant au clients</span>
<a name="l01025"></a>01025     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a07002cd38b9e91b9cc306606db34c632">CNX_Host</a> ){
<a name="l01026"></a>01026         memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// On vide le buffer</span>
<a name="l01027"></a>01027         sprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;4:%d,%s²&quot;</span>, (<span class="keywordtype">int</span>)JoueurGagnant, <a class="code" href="classpartie.html#a1e5f41da1f77f4e44cf5735f224e0388">c_winnerName</a>.c_str());
<a name="l01028"></a>01028         <span class="keywordflow">for</span>( i=0; i&lt;c_nb_joueurs; i++ )
<a name="l01029"></a>01029         {
<a name="l01030"></a>01030             <span class="comment">// Si le joueur est local où non connecté, on passe</span>
<a name="l01031"></a>01031             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal() || <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a33ea05f68d9ddf2cf242b9b19c8b1ceb" title="Renvoie le socket utilisé (Par defaut: INVALID_SOCKET).">socket</a>() == INVALID_SOCKET )
<a name="l01032"></a>01032                 <span class="keywordflow">continue</span>;
<a name="l01033"></a>01033 
<a name="l01034"></a>01034             <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Envoie du signal: Fin de partie + Nom du joueur gagnant. Note =&gt; Fin de transmition.</span>
<a name="l01035"></a>01035         }
<a name="l01036"></a>01036     }
<a name="l01037"></a>01037 
<a name="l01038"></a>01038     <span class="comment">// On désinitialise les bonus utilisables pour cette partie</span>
<a name="l01039"></a>01039     <a class="code" href="classbonus.html#a7b243eb4b56dce02b2008fb78d868684" title="Détruit les bonus qui étaient utilisables durant la partie.">bonus::unInitBonusProp</a>();
<a name="l01040"></a>01040 
<a name="l01041"></a>01041     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#ad3ff9229ecd345365b6aaad8f66aae2b" title="Partie en Host, Client.">c_connection</a> == <a class="code" href="classpartie.html#ab404c2e853ee2e820a91f97bbb826207a07002cd38b9e91b9cc306606db34c632">CNX_Host</a> )<span class="comment">// Si on est en mode serveur alors on connecte le serveur</span>
<a name="l01042"></a>01042         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a36c3ecd67ea956c01bf8f4064c1e2078" title="Met fin a une écoute sur un port.">endListen</a>();
<a name="l01043"></a>01043 
<a name="l01044"></a>01044     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a9d770bbd7b907ca0b8ed2f83f6c93adb" title="Renvoie le nombre de joueur en vie.">nbJoueurVivant</a>() == 1 )
<a name="l01045"></a>01045         <span class="keywordflow">return</span> JoueurGagnant;
<a name="l01046"></a>01046 
<a name="l01047"></a>01047     <span class="keywordflow">return</span> 0;
<a name="l01048"></a>01048 }
<a name="l01049"></a>01049 
<a name="l01050"></a>01050 
<a name="l01051"></a>01051 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l01052"></a>01052 <span class="comment">* @fn void partie::deplacer_le_Perso_A( unsigned int newX, unsigned int newY, unsigned char joueur )</span>
<a name="l01053"></a>01053 <span class="comment">* @brief Test si un personnage peut se déplacer à un endroit.</span>
<a name="l01054"></a>01054 <span class="comment">* Si on peut déplacer le perso dans la zone demandé =&gt; on déplace le perso</span>
<a name="l01055"></a>01055 <span class="comment">* SINON rien.</span>
<a name="l01056"></a>01056 <span class="comment">* C&#39;est aussi par cette fonction que l&#39;on :</span>
<a name="l01057"></a>01057 <span class="comment">*       - ramasse les bonus</span>
<a name="l01058"></a>01058 <span class="comment">*       - meur ( flamme )</span>
<a name="l01059"></a>01059 <span class="comment">*       - ne passe pas a travers les objets</span>
<a name="l01060"></a>01060 <span class="comment">*       - ne dépasse pas la taille de la map</span>
<a name="l01061"></a>01061 <span class="comment">*</span>
<a name="l01062"></a>01062 <span class="comment">* @bug &lt;b&gt;NE GERE PAS TOUT LES CAS&lt;/b&gt;</span>
<a name="l01063"></a>01063 <span class="comment">* @todo faire tout les cas possibles</span>
<a name="l01064"></a>01064 <span class="comment">*/</span>
<a name="l01065"></a><a class="code" href="classpartie.html#ae53ebc443767800289bf20b4123d6db1">01065</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#ae53ebc443767800289bf20b4123d6db1" title="Test si un personnage peut se déplacer à un endroit. Si on peut déplacer le perso dans la zone demand...">partie::deplacer_le_Perso_A</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> newX, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> newY, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> joueur )
<a name="l01066"></a>01066 {
<a name="l01067"></a>01067     <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469b" title="Les types de d&amp;#39;objet sur la map.">map::t_type</a> elementNouvellePosition;
<a name="l01068"></a>01068 
<a name="l01069"></a>01069     <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements() ){
<a name="l01070"></a>01070         stdError(<span class="stringliteral">&quot;Le joueur %d n&#39;a pas d&#39;armements ! Impossible de déplacer le joueur !&quot;</span>, joueur);
<a name="l01071"></a>01071         return ;
<a name="l01072"></a>01072     }
<a name="l01073"></a>01073 
<a name="l01074"></a>01074     <span class="keywordflow">if</span>( joueur &gt;= <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> )
<a name="l01075"></a>01075         stdErrorE(<span class="stringliteral">&quot;Le joueur %d n&#39;existe pas ! Impossible de déplacer le joueur !&quot;</span>, joueur);
<a name="l01076"></a>01076 
<a name="l01077"></a>01077     <span class="comment">// Ce qui a sur la nouvelle case</span>
<a name="l01078"></a>01078     elementNouvellePosition = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;element;
<a name="l01079"></a>01079 
<a name="l01080"></a>01080     <span class="comment">/***********************************************************************</span>
<a name="l01081"></a>01081 <span class="comment">    * Toutes les condition nécéssaire pour pouvoir bouger</span>
<a name="l01082"></a>01082 <span class="comment">    * Si l&#39;une d&#39;elle pas bonne =&gt; return void;</span>
<a name="l01083"></a>01083 <span class="comment">    * NOTE: newX, newY unsigned ! =&gt; pas besoin de check =&gt; 0</span>
<a name="l01084"></a>01084 <span class="comment">    */</span>
<a name="l01085"></a>01085     <span class="keywordflow">if</span>( !(  <span class="comment">/*0 &lt;= newX &amp;&amp;*/</span> newX &lt; c_map-&gt;X()<span class="comment">// On vérif si on ne dépasse pas la</span>
<a name="l01086"></a>01086         &amp;&amp;  <span class="comment">/*0 &lt;= newY &amp;&amp;*/</span> newY &lt; c_map-&gt;Y()<span class="comment">// taille de la map</span>
<a name="l01087"></a>01087         &amp;&amp;  elementNouvellePosition != <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bac6281d911da21f4bb566114037266055">map::Mur_destructible</a>        <span class="comment">// On vérif s&#39;il n&#39;y a pas</span>
<a name="l01088"></a>01088         &amp;&amp;  elementNouvellePosition != <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba1bae257451fe92ef4fafd02fed56a850">map::Mur_INdestructible</a>      <span class="comment">// d&#39;objet solid</span>
<a name="l01089"></a>01089         &amp;&amp; (
<a name="l01090"></a>01090                 (
<a name="l01091"></a>01091                     (
<a name="l01092"></a>01092                         elementNouvellePosition == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba00a358d27f9818438d9bd9b8e882fb2d">map::bombe_poser</a>
<a name="l01093"></a>01093                         || elementNouvellePosition == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba278e9245c0e1cfb455511d27114dc830">map::bombe_poser_AVEC_UN_joueur</a>
<a name="l01094"></a>01094                         || elementNouvellePosition == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba7eeb793973ee8e2ce702d82fbcd9d759">map::bombe_poser_AVEC_plusieurs_joueurs</a>
<a name="l01095"></a>01095                     )
<a name="l01096"></a>01096                     &amp;&amp;
<a name="l01097"></a>01097                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements()-&gt;quantiteMAX(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efae2dd393722ba461c826db4bc25f044eb">bonus::pousse_bombe</a>)
<a name="l01098"></a>01098                     &amp;&amp;
<a name="l01099"></a>01099                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur
<a name="l01100"></a>01100                     &amp;&amp;
<a name="l01101"></a>01101                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;size()
<a name="l01102"></a>01102                     &amp;&amp;
<a name="l01103"></a>01103                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;at(0)-1].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()
<a name="l01104"></a>01104                     &amp;&amp;
<a name="l01105"></a>01105                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;at(0)-1].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ae6328103dfcaf03ee9cd2656ca5fa6e6" title="Renvoie l&amp;#39;envent qui se trouve a la position X, Y.">getEvent</a>(newX, newY)
<a name="l01106"></a>01106                     &amp;&amp;
<a name="l01107"></a>01107                     (
<a name="l01108"></a>01108                         (
<a name="l01109"></a>01109                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a5db1bb1382ea2071bd744476542eaee2" title="Renvoie l&amp;#39;orientation du personnage.">orientation</a>() == <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5a634b23e64a1d353fdda76a2ec18248f4">perso::ORI_haut</a>
<a name="l01110"></a>01110                             &amp;&amp;
<a name="l01111"></a>01111                             newY &gt;= 1
<a name="l01112"></a>01112                             &amp;&amp;
<a name="l01113"></a>01113                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY-1)-&gt;element == map::vide
<a name="l01114"></a>01114                         )
<a name="l01115"></a>01115                         ||
<a name="l01116"></a>01116                         (
<a name="l01117"></a>01117                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].orientation() == <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5aa59f5203b5e142fa7a139b875240ccb7">perso::ORI_bas</a>
<a name="l01118"></a>01118                             &amp;&amp;
<a name="l01119"></a>01119                             newY+1 &lt; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abcb25776d119cd3f2864c67ec05a6a4a" title="Renvoie la taille Y de la map.">Y</a>()
<a name="l01120"></a>01120                             &amp;&amp;
<a name="l01121"></a>01121                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY+1)-&gt;element == map::vide
<a name="l01122"></a>01122                         )
<a name="l01123"></a>01123                         ||
<a name="l01124"></a>01124                         (
<a name="l01125"></a>01125                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].orientation() == <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5ab3e12149a43ed9f6c1ed651c7b7130a5">perso::ORI_droite</a>
<a name="l01126"></a>01126                             &amp;&amp;
<a name="l01127"></a>01127                             newX+1 &lt; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abc682d96c6d194b75d2e8a6430b5b076" title="Renvoie la taille X de la map.">X</a>()
<a name="l01128"></a>01128                             &amp;&amp;
<a name="l01129"></a>01129                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX+1, newY)-&gt;element == map::vide
<a name="l01130"></a>01130                         )
<a name="l01131"></a>01131                         ||
<a name="l01132"></a>01132                         (
<a name="l01133"></a>01133                             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].orientation() == <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5ab905cf580d7a21ed24b5917ddc8fe517">perso::ORI_gauche</a>
<a name="l01134"></a>01134                             &amp;&amp;
<a name="l01135"></a>01135                             newX &gt;= 1
<a name="l01136"></a>01136                             &amp;&amp;
<a name="l01137"></a>01137                             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX-1, newY)-&gt;element == map::vide
<a name="l01138"></a>01138                         )
<a name="l01139"></a>01139                     )
<a name="l01140"></a>01140                 )
<a name="l01141"></a>01141                 ||
<a name="l01142"></a>01142                 (
<a name="l01143"></a>01143                         elementNouvellePosition != <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba00a358d27f9818438d9bd9b8e882fb2d">map::bombe_poser</a>
<a name="l01144"></a>01144                     &amp;&amp;  elementNouvellePosition != <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba278e9245c0e1cfb455511d27114dc830">map::bombe_poser_AVEC_UN_joueur</a>
<a name="l01145"></a>01145                     &amp;&amp;  elementNouvellePosition != <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba7eeb793973ee8e2ce702d82fbcd9d759">map::bombe_poser_AVEC_plusieurs_joueurs</a>
<a name="l01146"></a>01146                 )
<a name="l01147"></a>01147             )
<a name="l01148"></a>01148         ))
<a name="l01149"></a>01149     {
<a name="l01150"></a>01150         return ;
<a name="l01151"></a>01151     }
<a name="l01152"></a>01152 
<a name="l01153"></a>01153 
<a name="l01154"></a>01154     <span class="comment">/***********************************************************************</span>
<a name="l01155"></a>01155 <span class="comment">    * On ne tombe pas sur un objet inconnu</span>
<a name="l01156"></a>01156 <span class="comment">    * Anti bug</span>
<a name="l01157"></a>01157 <span class="comment">    */</span>
<a name="l01158"></a>01158     <span class="keywordflow">if</span>( elementNouvellePosition == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4a8d28cb4af64e5bf311ef83bc5e5ad4">map::inconnu</a> )
<a name="l01159"></a>01159         stdErrorE(<span class="stringliteral">&quot;Objet inconnu dans la map à X=%d, Y=%d !&quot;</span>, newX, newY);
<a name="l01160"></a>01160 
<a name="l01161"></a>01161     <span class="comment">// Tout est Ok, on déplace le perso</span>
<a name="l01162"></a>01162 
<a name="l01163"></a>01163     <span class="comment">/***********************************************************************</span>
<a name="l01164"></a>01164 <span class="comment">    * On enlève le perso de son ancienne position.</span>
<a name="l01165"></a>01165 <span class="comment">    * ( Et remise en état de la case )</span>
<a name="l01166"></a>01166 <span class="comment">    */</span>
<a name="l01167"></a>01167     <span class="comment">// On regarde le nombre d&#39;info joueur(meta données) sur la case actuel</span>
<a name="l01168"></a>01168     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ab7ddadf37a30d0f56b8fe9fb5331e67f" title="Renvoie le nombre d&amp;#39;info joueurs dans le block (X, Y) (meta données).">nb_InfoJoueur</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>()) &gt; 1 ){
<a name="l01169"></a>01169         <span class="comment">// Il reste plus de 1 joueurs sur la case</span>
<a name="l01170"></a>01170         <span class="keywordflow">switch</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element )
<a name="l01171"></a>01171         {
<a name="l01172"></a>01172             <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba278e9245c0e1cfb455511d27114dc830">map::bombe_poser_AVEC_UN_joueur</a>: {
<a name="l01173"></a>01173                 <span class="comment">// On enlève le perso de son ancienne position</span>
<a name="l01174"></a>01174                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba00a358d27f9818438d9bd9b8e882fb2d">map::bombe_poser</a>);
<a name="l01175"></a>01175                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].Y(), joueur+1, 0 );
<a name="l01176"></a>01176                 <span class="keywordflow">break</span>;
<a name="l01177"></a>01177             }
<a name="l01178"></a>01178             <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469baa94a2d9d84a636b26e656df3e5ae16b8">map::plusieurs_joueurs</a>: {
<a name="l01179"></a>01179                 <span class="comment">// On enlève le perso de son ancienne position et S&#39;il n&#39;y avait plus que 2 joueurs =&gt; il ne restera q&#39;un joueur</span>
<a name="l01180"></a>01180                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ab7ddadf37a30d0f56b8fe9fb5331e67f" title="Renvoie le nombre d&amp;#39;info joueurs dans le block (X, Y) (meta données).">nb_InfoJoueur</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>()) == 2 )
<a name="l01181"></a>01181                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>);
<a name="l01182"></a>01182 
<a name="l01183"></a>01183                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].Y(), joueur+1, 1);
<a name="l01184"></a>01184                 <span class="keywordflow">break</span>;
<a name="l01185"></a>01185             }
<a name="l01186"></a>01186             <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba7eeb793973ee8e2ce702d82fbcd9d759">map::bombe_poser_AVEC_plusieurs_joueurs</a>: {
<a name="l01187"></a>01187                 <span class="comment">// On enlève le perso de son ancienne position</span>
<a name="l01188"></a>01188                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ab7ddadf37a30d0f56b8fe9fb5331e67f" title="Renvoie le nombre d&amp;#39;info joueurs dans le block (X, Y) (meta données).">nb_InfoJoueur</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-2 == 1 ){
<a name="l01189"></a>01189                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba278e9245c0e1cfb455511d27114dc830">map::bombe_poser_AVEC_UN_joueur</a>);
<a name="l01190"></a>01190                 }<span class="keywordflow">else</span>{
<a name="l01191"></a>01191                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba7eeb793973ee8e2ce702d82fbcd9d759">map::bombe_poser_AVEC_plusieurs_joueurs</a>);
<a name="l01192"></a>01192                 }
<a name="l01193"></a>01193                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].Y(), joueur+1, 0 );
<a name="l01194"></a>01194                 <span class="keywordflow">break</span>;
<a name="l01195"></a>01195             }
<a name="l01196"></a>01196             <span class="keywordflow">default</span>: {
<a name="l01197"></a>01197                 stdError(<span class="stringliteral">&quot;cas NON traite %d&quot;</span>, (<span class="keywordtype">int</span>)<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#abdd033a1b14d1e2c8c6a58b7bd28de86" title="Renvoie la position X du perso.">X</a>(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a728c317474ec0e762c2c36c283a1654c" title="Renvoie la position Y du perso.">Y</a>())-&gt;element);
<a name="l01198"></a>01198                 <span class="keywordflow">break</span>;
<a name="l01199"></a>01199             }
<a name="l01200"></a>01200         }
<a name="l01201"></a>01201     }<span class="keywordflow">else</span>{<span class="comment">// Suppression total -&gt; case toute propre</span>
<a name="l01202"></a>01202         <span class="comment">// On enlève le perso de son ancienne position</span>
<a name="l01203"></a>01203         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].X(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].Y(), <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>);
<a name="l01204"></a>01204     }
<a name="l01205"></a>01205 
<a name="l01206"></a>01206     <span class="comment">/***********************************************************************</span>
<a name="l01207"></a>01207 <span class="comment">    * On place le perso a sa nouvelle position</span>
<a name="l01208"></a>01208 <span class="comment">    */</span>
<a name="l01209"></a>01209     <span class="keywordflow">switch</span>( elementNouvellePosition )
<a name="l01210"></a>01210     {
<a name="l01211"></a>01211         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>: {
<a name="l01212"></a>01212             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>);
<a name="l01213"></a>01213             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>(newX, newY, joueur+1);
<a name="l01214"></a>01214             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01215"></a>01215             <span class="keywordflow">break</span>;
<a name="l01216"></a>01216         }
<a name="l01217"></a>01217         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>:
<a name="l01218"></a>01218         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469baa94a2d9d84a636b26e656df3e5ae16b8">map::plusieurs_joueurs</a>: {
<a name="l01219"></a>01219             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469baa94a2d9d84a636b26e656df3e5ae16b8">map::plusieurs_joueurs</a>);
<a name="l01220"></a>01220             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>(newX, newY, joueur+1);
<a name="l01221"></a>01221             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01222"></a>01222             <span class="keywordflow">break</span>;
<a name="l01223"></a>01223         }
<a name="l01224"></a>01224         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba0b01d857d4519d6da4b8833433a718d0">map::flamme_horizontal</a>:
<a name="l01225"></a>01225         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bac2726a799ffd38fb4b89989f24d40e7e">map::flamme_vertical</a>:
<a name="l01226"></a>01226         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bab794750be41b582091eb2b4c480581e4">map::flamme_pointe_haut</a>:
<a name="l01227"></a>01227         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba09c901a81e700c77bcd7886584f1c443">map::flamme_pointe_bas</a>:
<a name="l01228"></a>01228         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba62944c1454be834def9f3dd83c71bfe1">map::flamme_pointe_droite</a>:
<a name="l01229"></a>01229         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba08c81a1be9eb74cd270ee9aba56122a7">map::flamme_pointe_gauche</a>:
<a name="l01230"></a>01230         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bac331e3cb1090bc086fc8aec8c40f8d90">map::flamme_origine</a>: {
<a name="l01231"></a>01231             <span class="comment">// Viens d&#39;aller dans le feu -&gt; Boulet ?</span>
<a name="l01232"></a>01232             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01233"></a>01233 
<a name="l01234"></a>01234             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements()-&gt;quantiteUtilisable(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>) == 0 ){
<a name="l01235"></a>01235                 <span class="comment">// Le perso n&#39;a plus de vie</span>
<a name="l01236"></a>01236                 <span class="comment">// On le supprime de la carte</span>
<a name="l01237"></a>01237                 <span class="comment">// On force tout les events à ce mettre dans la file général</span>
<a name="l01238"></a>01238                 <span class="comment">// On active toutes les bombes</span>
<a name="l01239"></a>01239                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ad6c7196687883d064c8937d8b0b742b3" title="Met fin au temps d&amp;#39;attente de tous les event et ajoute le signal kill, qui signifit, qu&amp;#39;il faut supprimer l&amp;#39;armement.">kill</a>();
<a name="l01240"></a>01240             }<span class="keywordflow">else</span>{
<a name="l01241"></a>01241                 <span class="comment">// Il reste une vie au perso</span>
<a name="l01242"></a>01242                 <span class="comment">// On supprime une vie</span>
<a name="l01243"></a>01243                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a09ddd6bcfc30cc20ee55f41ee1885136" title="Décrémente quantite_utilisable.">decQuantiteUtilisable</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>);
<a name="l01244"></a>01244                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#aab77df64a0e6931d90af3f500721e5cd" title="Décrémente quantite_MAX_en_stock.">decQuantiteMAX_en_stock</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>);
<a name="l01245"></a>01245                 <a class="code" href="classpartie.html#a54c3b6294fadf3be0949fa19527f5370" title="Place un perso a sa position d&amp;#39;initial Si la case initial, contient :un bonus, =&amp;gt; ramasse le bonusdes flammes -&amp;gt; nétoyage de la case puis on place le perso.">placer_perso_position_initial</a>(joueur);
<a name="l01246"></a>01246             }
<a name="l01247"></a>01247             <span class="keywordflow">break</span>;
<a name="l01248"></a>01248         }
<a name="l01249"></a>01249         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba5bb1e9e4730d4ba08f3dab2921bfce00">map::bonus</a>: {
<a name="l01250"></a>01250             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur )
<a name="l01251"></a>01251                 stdErrorE(<span class="stringliteral">&quot;BONUS: Problème de pointeur ! c_map-&gt;getBlock(%u, %u)-&gt;joueur = 0 !&quot;</span>, newX, newY);
<a name="l01252"></a>01252             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;size() )
<a name="l01253"></a>01253                 stdErrorE(<span class="stringliteral">&quot;BONUS: Problème de contenu ! c_map-&gt;getBlock(%u, %u)-&gt;joueur-&gt;size() = 0 !&quot;</span>, newX, newY);
<a name="l01254"></a>01254             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;at(0) &gt;= bonus::NB_ELEMENT_t_Bonus )
<a name="l01255"></a>01255                 stdErrorE(<span class="stringliteral">&quot;BONUS: Problème de contenu ! c_map-&gt;getBlock(%u, %u)-&gt;joueur-&gt;at(0){%u} &gt;= {%d}NB_ELEMENT_t_Bonus !&quot;</span>, newX, newY, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;at(0), bonus::NB_ELEMENT_t_Bonus);
<a name="l01256"></a>01256             <span class="comment">// Ajout de l&#39;armement</span>
<a name="l01257"></a>01257             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements() )
<a name="l01258"></a>01258                 stdErrorE(<span class="stringliteral">&quot;Le joueur %d n&#39;a pas d&#39;armement ! Erreur lors du déplacement sur le bonus !&quot;</span>, joueur);
<a name="l01259"></a>01259             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#aab3137a4c074a64f24c1c725fac1fe76" title="Incrémente quantite_MAX_en_stock et quantite_utilisable.">incQuantiteMAX_en_stock</a>((<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7ef" title="Les types de bonus possible dans le jeu.">bonus::t_Bonus</a>)<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;at(0));
<a name="l01260"></a>01260             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>);<span class="comment">// On surrpime tout ce qui avait avant</span>
<a name="l01261"></a>01261             <span class="comment">// Placement du perso</span>
<a name="l01262"></a>01262             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>);
<a name="l01263"></a>01263             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>(newX, newY, joueur+1);
<a name="l01264"></a>01264             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01265"></a>01265             <span class="keywordflow">break</span>;
<a name="l01266"></a>01266         }
<a name="l01267"></a>01267         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba00a358d27f9818438d9bd9b8e882fb2d">map::bombe_poser</a>: {
<a name="l01268"></a>01268             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur )
<a name="l01269"></a>01269                 stdErrorE(<span class="stringliteral">&quot;BONUS: Problème de pointeur ! c_map-&gt;getBlock(%u, %u)-&gt;joueur = 0 !&quot;</span>, newX, newY);
<a name="l01270"></a>01270             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;size() )
<a name="l01271"></a>01271                 stdErrorE(<span class="stringliteral">&quot;BONUS: Problème de contenu ! c_map-&gt;getBlock(%u, %u)-&gt;joueur-&gt;size() = 0 !&quot;</span>, newX, newY);
<a name="l01272"></a>01272 
<a name="l01273"></a>01273 
<a name="l01274"></a>01274             <a class="code" href="structpartie_1_1s___event_pousse_bombe.html" title="Permet de gérer les event des pousses bombes.">s_EventPousseBombe</a> e;
<a name="l01275"></a>01275             e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a09dda126b50ee4c1f29ed7b2b206c702" title="Direction de la bombe.">direction</a> = <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a5db1bb1382ea2071bd744476542eaee2" title="Renvoie l&amp;#39;orientation du personnage.">orientation</a>();
<a name="l01276"></a>01276             e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a> = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;at(0)-1;
<a name="l01277"></a>01277             e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7bc9760c6a082bb8a4c6a5479cae8098" title="Time de la prochaine répétion.">repetionSuivante</a> = clock() + bonus::VITESSE_pousseBombe;
<a name="l01278"></a>01278 
<a name="l01279"></a>01279             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>() )
<a name="l01280"></a>01280                 stdErrorE(<span class="stringliteral">&quot;Attention ! Le joueur %u est mort !&quot;</span>, e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>);
<a name="l01281"></a>01281 
<a name="l01282"></a>01282             <span class="comment">// La bombe n&#39;est plus dans la liste des event bonus</span>
<a name="l01283"></a>01283             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ae6328103dfcaf03ee9cd2656ca5fa6e6" title="Renvoie l&amp;#39;envent qui se trouve a la position X, Y.">getEvent</a>(newX, newY) ){
<a name="l01284"></a>01284                 stdError(<span class="stringliteral">&quot;getEvent(%u, %u) = 0&quot;</span>, newX, newY);
<a name="l01285"></a>01285                 return ;
<a name="l01286"></a>01286             }
<a name="l01287"></a>01287 
<a name="l01288"></a>01288             <span class="keywordflow">switch</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].orientation() )
<a name="l01289"></a>01289             {
<a name="l01290"></a>01290                 <span class="keywordflow">case</span> <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5a634b23e64a1d353fdda76a2ec18248f4">perso::ORI_haut</a>: {
<a name="l01291"></a>01291                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( newX, newY-1, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba00a358d27f9818438d9bd9b8e882fb2d">map::bombe_poser</a> );
<a name="l01292"></a>01292                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( newX, newY-1, joueur+1);
<a name="l01293"></a>01293 
<a name="l01294"></a>01294                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(newX, newY);
<a name="l01295"></a>01295                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>);
<a name="l01296"></a>01296                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( newX, newY, joueur+1);
<a name="l01297"></a>01297                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01298"></a>01298 
<a name="l01299"></a>01299                     e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a> = <a class="code" href="coordonnees_8h.html#a6672966a8002c5f5e0a711f7029b0e7d" title="Permet de créer facillement une stucture s_Coordonnees initialisée.">coordonneeConvert</a>(newX, newY-1);
<a name="l01300"></a>01300                     <span class="keywordflow">break</span>;
<a name="l01301"></a>01301                 }
<a name="l01302"></a>01302                 <span class="keywordflow">case</span> <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5aa59f5203b5e142fa7a139b875240ccb7">perso::ORI_bas</a>: {
<a name="l01303"></a>01303                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( newX, newY+1, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba00a358d27f9818438d9bd9b8e882fb2d">map::bombe_poser</a> );
<a name="l01304"></a>01304                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( newX, newY+1, joueur+1);
<a name="l01305"></a>01305 
<a name="l01306"></a>01306                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(newX, newY);
<a name="l01307"></a>01307                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>);
<a name="l01308"></a>01308                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( newX, newY, joueur+1);
<a name="l01309"></a>01309                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01310"></a>01310 
<a name="l01311"></a>01311                     e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a> = <a class="code" href="coordonnees_8h.html#a6672966a8002c5f5e0a711f7029b0e7d" title="Permet de créer facillement une stucture s_Coordonnees initialisée.">coordonneeConvert</a>(newX, newY+1);
<a name="l01312"></a>01312                     <span class="keywordflow">break</span>;
<a name="l01313"></a>01313                 }
<a name="l01314"></a>01314                 <span class="keywordflow">case</span> <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5ab3e12149a43ed9f6c1ed651c7b7130a5">perso::ORI_droite</a>: {
<a name="l01315"></a>01315                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( newX+1, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba00a358d27f9818438d9bd9b8e882fb2d">map::bombe_poser</a> );
<a name="l01316"></a>01316                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( newX+1, newY, joueur+1);
<a name="l01317"></a>01317 
<a name="l01318"></a>01318                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(newX, newY);
<a name="l01319"></a>01319                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>);
<a name="l01320"></a>01320                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( newX, newY, joueur+1);
<a name="l01321"></a>01321                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01322"></a>01322 
<a name="l01323"></a>01323                     e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a> = <a class="code" href="coordonnees_8h.html#a6672966a8002c5f5e0a711f7029b0e7d" title="Permet de créer facillement une stucture s_Coordonnees initialisée.">coordonneeConvert</a>(newX+1, newY);
<a name="l01324"></a>01324                     <span class="keywordflow">break</span>;
<a name="l01325"></a>01325                 }
<a name="l01326"></a>01326                 <span class="keywordflow">case</span> <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5ab905cf580d7a21ed24b5917ddc8fe517">perso::ORI_gauche</a>: {
<a name="l01327"></a>01327                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( newX-1, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba00a358d27f9818438d9bd9b8e882fb2d">map::bombe_poser</a> );
<a name="l01328"></a>01328                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( newX-1, newY, joueur+1);
<a name="l01329"></a>01329 
<a name="l01330"></a>01330                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(newX, newY);
<a name="l01331"></a>01331                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>);
<a name="l01332"></a>01332                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( newX, newY, joueur+1);
<a name="l01333"></a>01333                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01334"></a>01334 
<a name="l01335"></a>01335                     e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a> = <a class="code" href="coordonnees_8h.html#a6672966a8002c5f5e0a711f7029b0e7d" title="Permet de créer facillement une stucture s_Coordonnees initialisée.">coordonneeConvert</a>(newX-1, newY);
<a name="l01336"></a>01336                     <span class="keywordflow">break</span>;
<a name="l01337"></a>01337                 }
<a name="l01338"></a>01338                 <span class="keywordflow">default</span>:
<a name="l01339"></a>01339                     stdErrorE(<span class="stringliteral">&quot;Erreur, orientation incorrect ! %d&quot;</span>, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].orientation());
<a name="l01340"></a>01340             }
<a name="l01341"></a>01341 
<a name="l01342"></a>01342             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ae6328103dfcaf03ee9cd2656ca5fa6e6" title="Renvoie l&amp;#39;envent qui se trouve a la position X, Y.">getEvent</a>(newX, newY)-&gt;pos = e.<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>;
<a name="l01343"></a>01343             <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>&lt;&lt; e ;<span class="comment">// On ajoute la bome à la liste d&#39;event</span>
<a name="l01344"></a>01344 
<a name="l01345"></a>01345             <span class="keywordflow">break</span>;
<a name="l01346"></a>01346         }
<a name="l01347"></a>01347         <span class="keywordflow">default</span>: {
<a name="l01348"></a>01348             stdError(<span class="stringliteral">&quot;Cas non pris en charge c_map-&gt;getBlock(%u, %u).element=%d&quot;</span>, newX, newY, elementNouvellePosition);
<a name="l01349"></a>01349         }
<a name="l01350"></a>01350     }
<a name="l01351"></a>01351 }
<a name="l01352"></a>01352 
<a name="l01353"></a>01353 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l01354"></a>01354 <span class="comment">* @fn void partie::placer_perso_position_initial( unsigned char joueur )</span>
<a name="l01355"></a>01355 <span class="comment">* @brief Place un perso a sa position d&#39;initial</span>
<a name="l01356"></a>01356 <span class="comment">* Si la case initial, contient :</span>
<a name="l01357"></a>01357 <span class="comment">*       - un bonus, =&gt; ramasse le bonus</span>
<a name="l01358"></a>01358 <span class="comment">*       - des flammes -&gt; nétoyage de la case puis on place le perso</span>
<a name="l01359"></a>01359 <span class="comment">*</span>
<a name="l01360"></a>01360 <span class="comment">* @bug &lt;b&gt;NE GERE PAS TOUT LES CAS&lt;/b&gt;</span>
<a name="l01361"></a>01361 <span class="comment">* @todo faire tout les cas possibles</span>
<a name="l01362"></a>01362 <span class="comment">*/</span>
<a name="l01363"></a><a class="code" href="classpartie.html#a54c3b6294fadf3be0949fa19527f5370">01363</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#a54c3b6294fadf3be0949fa19527f5370" title="Place un perso a sa position d&amp;#39;initial Si la case initial, contient :un bonus, =&amp;gt; ramasse le bonusdes flammes -&amp;gt; nétoyage de la case puis on place le perso.">partie::placer_perso_position_initial</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> joueur )
<a name="l01364"></a>01364 {
<a name="l01365"></a>01365     <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469b" title="Les types de d&amp;#39;objet sur la map.">map::t_type</a> elementNouvellePosition;
<a name="l01366"></a>01366     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> newX, newY;
<a name="l01367"></a>01367 
<a name="l01368"></a>01368     <span class="keywordflow">if</span>( joueur &gt;= <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> )
<a name="l01369"></a>01369         stdErrorE(<span class="stringliteral">&quot;Le joueur %d n&#39;existe pas ! Impossible de déplacer le joueur !&quot;</span>, joueur);
<a name="l01370"></a>01370 
<a name="l01371"></a>01371     newX = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69a17c9066d0cc1b9cf2f0123db3114e" title="Renvoie la position initial du joueur.">positionInitialJoueur</a>(joueur+1).<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>;
<a name="l01372"></a>01372     newY = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69a17c9066d0cc1b9cf2f0123db3114e" title="Renvoie la position initial du joueur.">positionInitialJoueur</a>(joueur+1).<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>;
<a name="l01373"></a>01373 
<a name="l01374"></a>01374     <span class="comment">// Ce qui a sur la nouvelle case</span>
<a name="l01375"></a>01375     elementNouvellePosition = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;element;
<a name="l01376"></a>01376 
<a name="l01377"></a>01377     <span class="comment">/***********************************************************************</span>
<a name="l01378"></a>01378 <span class="comment">    * Toutes les condition nécéssaire pour pouvoir bouger</span>
<a name="l01379"></a>01379 <span class="comment">    * Si l&#39;une d&#39;elle pas bonne =&gt; return void;</span>
<a name="l01380"></a>01380 <span class="comment">    * NOTE: newX, newY unsigned ! =&gt; pas besoin de check =&gt; 0</span>
<a name="l01381"></a>01381 <span class="comment">    */</span>
<a name="l01382"></a>01382     <span class="keywordflow">if</span>( !(  <span class="comment">/*0 &lt;= newX &amp;&amp;*/</span> newX &lt; c_map-&gt;X()<span class="comment">// On vérif si on ne dépasse pas la</span>
<a name="l01383"></a>01383         &amp;&amp;  <span class="comment">/*0 &lt;= newY &amp;&amp;*/</span> newY &lt; c_map-&gt;Y()<span class="comment">// taille de la map</span>
<a name="l01384"></a>01384         &amp;&amp;  elementNouvellePosition != <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bac6281d911da21f4bb566114037266055">map::Mur_destructible</a>        <span class="comment">// On vérif s&#39;il n&#39;y a pas</span>
<a name="l01385"></a>01385         &amp;&amp;  elementNouvellePosition != <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba1bae257451fe92ef4fafd02fed56a850">map::Mur_INdestructible</a>))    <span class="comment">// d&#39;objet solid</span>
<a name="l01386"></a>01386     {
<a name="l01387"></a>01387         stdError(<span class="stringliteral">&quot;Problème de positionnement ! Impossible de mettre le perso a sa position initial !&quot;</span>);
<a name="l01388"></a>01388         return ;
<a name="l01389"></a>01389     }
<a name="l01390"></a>01390 
<a name="l01391"></a>01391     <span class="comment">/***********************************************************************</span>
<a name="l01392"></a>01392 <span class="comment">    * On ne tombe pas sur un objet inconnu</span>
<a name="l01393"></a>01393 <span class="comment">    * Anti bug</span>
<a name="l01394"></a>01394 <span class="comment">    */</span>
<a name="l01395"></a>01395     <span class="keywordflow">if</span>( elementNouvellePosition == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4a8d28cb4af64e5bf311ef83bc5e5ad4">map::inconnu</a> )
<a name="l01396"></a>01396         stdErrorE(<span class="stringliteral">&quot;Objet inconnu dans la map à X=%d, Y=%d !&quot;</span>, newX, newY);
<a name="l01397"></a>01397 
<a name="l01398"></a>01398     <span class="comment">// Tout est Ok, on déplace le perso</span>
<a name="l01399"></a>01399 
<a name="l01400"></a>01400     <span class="comment">/***********************************************************************</span>
<a name="l01401"></a>01401 <span class="comment">    * On place le perso a sa nouvelle position</span>
<a name="l01402"></a>01402 <span class="comment">    */</span>
<a name="l01403"></a>01403     <span class="keywordflow">switch</span>( elementNouvellePosition )
<a name="l01404"></a>01404     {
<a name="l01405"></a>01405         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>: {
<a name="l01406"></a>01406             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>);
<a name="l01407"></a>01407             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>(newX, newY, joueur+1);
<a name="l01408"></a>01408             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01409"></a>01409             <span class="keywordflow">break</span>;
<a name="l01410"></a>01410         }
<a name="l01411"></a>01411         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>:
<a name="l01412"></a>01412         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469baa94a2d9d84a636b26e656df3e5ae16b8">map::plusieurs_joueurs</a>: {
<a name="l01413"></a>01413             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469baa94a2d9d84a636b26e656df3e5ae16b8">map::plusieurs_joueurs</a>);
<a name="l01414"></a>01414             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>(newX, newY, joueur+1);
<a name="l01415"></a>01415             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01416"></a>01416             <span class="keywordflow">break</span>;
<a name="l01417"></a>01417         }
<a name="l01418"></a>01418         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba0b01d857d4519d6da4b8833433a718d0">map::flamme_horizontal</a>:
<a name="l01419"></a>01419         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bac2726a799ffd38fb4b89989f24d40e7e">map::flamme_vertical</a>:
<a name="l01420"></a>01420         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bab794750be41b582091eb2b4c480581e4">map::flamme_pointe_haut</a>:
<a name="l01421"></a>01421         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba09c901a81e700c77bcd7886584f1c443">map::flamme_pointe_bas</a>:
<a name="l01422"></a>01422         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba62944c1454be834def9f3dd83c71bfe1">map::flamme_pointe_droite</a>:
<a name="l01423"></a>01423         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba08c81a1be9eb74cd270ee9aba56122a7">map::flamme_pointe_gauche</a>:
<a name="l01424"></a>01424         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bac331e3cb1090bc086fc8aec8c40f8d90">map::flamme_origine</a>: {
<a name="l01425"></a>01425             <span class="comment">// Viens d&#39;aller dans le feu -&gt; On vire le feu</span>
<a name="l01426"></a>01426             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(newX, newY);<span class="comment">// On surrpime tout ce qui avait avant</span>
<a name="l01427"></a>01427             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>);
<a name="l01428"></a>01428             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>(newX, newY, joueur+1);
<a name="l01429"></a>01429             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01430"></a>01430             <span class="keywordflow">break</span>;
<a name="l01431"></a>01431         }
<a name="l01432"></a>01432         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba5bb1e9e4730d4ba08f3dab2921bfce00">map::bonus</a>: {
<a name="l01433"></a>01433             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur )
<a name="l01434"></a>01434                 stdErrorE(<span class="stringliteral">&quot;BONUS: Problème de pointeur ! c_map-&gt;getBlock(%u, %u)-&gt;joueur = 0 !&quot;</span>, newX, newY);
<a name="l01435"></a>01435             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;size() )
<a name="l01436"></a>01436                 stdErrorE(<span class="stringliteral">&quot;BONUS: Problème de contenu ! c_map-&gt;getBlock(%u, %u)-&gt;joueur-&gt;size() = 0 !&quot;</span>, newX, newY);
<a name="l01437"></a>01437             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;at(0) &gt;= bonus::NB_ELEMENT_t_Bonus )
<a name="l01438"></a>01438                 stdErrorE(<span class="stringliteral">&quot;BONUS: Problème de contenu ! c_map-&gt;getBlock(%u, %u)-&gt;joueur-&gt;at(0){%u} &gt;= {%d}NB_ELEMENT_t_Bonus !&quot;</span>, newX, newY, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;at(0), bonus::NB_ELEMENT_t_Bonus);
<a name="l01439"></a>01439             <span class="comment">// Ajout de l&#39;armement</span>
<a name="l01440"></a>01440             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements() )
<a name="l01441"></a>01441                 stdErrorE(<span class="stringliteral">&quot;Le joueur %d n&#39;a pas d&#39;armement ! Erreur lors du déplacement sur le bonus !&quot;</span>, joueur);
<a name="l01442"></a>01442             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#aab3137a4c074a64f24c1c725fac1fe76" title="Incrémente quantite_MAX_en_stock et quantite_utilisable.">incQuantiteMAX_en_stock</a>((<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7ef" title="Les types de bonus possible dans le jeu.">bonus::t_Bonus</a>)<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(newX, newY)-&gt;joueur-&gt;at(0));
<a name="l01443"></a>01443             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(newX, newY);<span class="comment">// On surrpime tout ce qui avait avant</span>
<a name="l01444"></a>01444             <span class="comment">// Placement du perso</span>
<a name="l01445"></a>01445             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(newX, newY, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>);
<a name="l01446"></a>01446             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>(newX, newY, joueur+1);
<a name="l01447"></a>01447             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].<a class="code" href="classperso.html#a3c273f65aee2b958e0d2b1112762feab" title="Modifie la position du personnage.">defPos</a>(newX, newY);
<a name="l01448"></a>01448             <span class="keywordflow">break</span>;
<a name="l01449"></a>01449         }
<a name="l01450"></a>01450         <span class="keywordflow">default</span>: {
<a name="l01451"></a>01451             stdErrorE(<span class="stringliteral">&quot;Cas non pris en charge c_map-&gt;getBlock(%u, %u).element=%d&quot;</span>, newX, newY, elementNouvellePosition);
<a name="l01452"></a>01452         }
<a name="l01453"></a>01453     }
<a name="l01454"></a>01454 }
<a name="l01455"></a>01455 
<a name="l01456"></a>01456 
<a name="l01457"></a>01457 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l01458"></a>01458 <span class="comment">* @fn void partie::checkInternalEventPousseBombe()</span>
<a name="l01459"></a>01459 <span class="comment">* @brief Scan les event du bonus pousse bombe</span>
<a name="l01460"></a>01460 <span class="comment">*</span>
<a name="l01461"></a>01461 <span class="comment">* @bug Date du bug: 2011/01/20&lt;br /&gt;</span>
<a name="l01462"></a>01462 <span class="comment">* Le code contenu dans cette fonction devrait normalement aller directement dans la fonction</span>
<a name="l01463"></a>01463 <span class="comment">* partie::checkInternalEvent(). Or sous SDL, le code contenu dans cette fonction provoque un bug</span>
<a name="l01464"></a>01464 <span class="comment">* d&#39;accélération des personnages. Ce bug ne touche que les joueurs qui ont des touches comprises</span>
<a name="l01465"></a>01465 <span class="comment">* entre a et z. Même si le code n&#39;est jamais traité, le bug ce produit quand même. De plsu si</span>
<a name="l01466"></a>01466 <span class="comment">* l&#39;on essaye de tracer le bug avec stdError(...) au niveau du clavier ou même au niveau de</span>
<a name="l01467"></a>01467 <span class="comment">* perso::defPos( unsigned int Xpos, unsigned int Ypos ) alors le bug n&#39;existe plus...&lt;br /&gt;</span>
<a name="l01468"></a>01468 <span class="comment">* Pour info, ce bug existe UNIQUEMENT depuis la création du bonus &quot;Pousse Bombe&quot;&lt;br /&gt;</span>
<a name="l01469"></a>01469 <span class="comment">* A première vu, ce bout de code a lui seul fait apparaitre le bug, alors que le code</span>
<a name="l01470"></a>01470 <span class="comment">* en lui même ne fait que lire des infos :</span>
<a name="l01471"></a>01471 <span class="comment">* @code</span>
<a name="l01472"></a>01472 <span class="comment">* c_joueurs[c_listEventPouseBombe.at(i).joueur].armements()-&gt;getEvent(c_listEventPouseBombe.at(i).pos.x, c_listEventPouseBombe.at(i).pos.y);</span>
<a name="l01473"></a>01473 <span class="comment">* @endcode</span>
<a name="l01474"></a>01474 <span class="comment">*/</span>
<a name="l01475"></a><a class="code" href="classpartie.html#aa5cca051f9f07d1b267f5a4df8dabd24">01475</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#aa5cca051f9f07d1b267f5a4df8dabd24" title="Scan les event du bonus pousse bombe.">partie::checkInternalEventPousseBombe</a>()
<a name="l01476"></a>01476 {
<a name="l01477"></a>01477     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a1ba2656b5fa0790c29790373e9fee411">size</a>(); i++ )
<a name="l01478"></a>01478     {
<a name="l01479"></a>01479         <span class="comment">// Tant que l&#39;on a pas atteint le temps</span>
<a name="l01480"></a>01480         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7bc9760c6a082bb8a4c6a5479cae8098" title="Time de la prochaine répétion.">repetionSuivante</a> &gt; clock() ) <span class="keywordflow">continue</span>;
<a name="l01481"></a>01481 
<a name="l01482"></a>01482         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>();
<a name="l01483"></a>01483         <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>;
<a name="l01484"></a>01484         <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>;
<a name="l01485"></a>01485         <span class="comment">// Ce bout de code a lui seul fait apparaitre le bug...</span>
<a name="l01486"></a>01486         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ae6328103dfcaf03ee9cd2656ca5fa6e6" title="Renvoie l&amp;#39;envent qui se trouve a la position X, Y.">getEvent</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>);
<a name="l01487"></a>01487 
<a name="l01488"></a>01488         <span class="comment">// Si le joueur est mort =&gt; on vire la bombe de la liste</span>
<a name="l01489"></a>01489         <span class="comment">// Si la bombe a explosé =&gt; on vire la bombe de la liste</span>
<a name="l01490"></a>01490         <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>() || !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ae6328103dfcaf03ee9cd2656ca5fa6e6" title="Renvoie l&amp;#39;envent qui se trouve a la position X, Y.">getEvent</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>) ){
<a name="l01491"></a>01491             <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a87d4d2405fe9f067a948d3edc24da1a0">remove</a>(i);
<a name="l01492"></a>01492             i--;
<a name="l01493"></a>01493         }<span class="keywordflow">else</span>{
<a name="l01494"></a>01494 
<a name="l01495"></a>01495             <span class="keywordflow">switch</span>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a09dda126b50ee4c1f29ed7b2b206c702" title="Direction de la bombe.">direction</a> )
<a name="l01496"></a>01496             {
<a name="l01497"></a>01497                 <span class="keywordflow">case</span> <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5a634b23e64a1d353fdda76a2ec18248f4">perso::ORI_haut</a>: {
<a name="l01498"></a>01498                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a> &gt;= 1 &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>-1)-&gt;element == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a> ){
<a name="l01499"></a>01499                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>-1, map::bombe_poser );
<a name="l01500"></a>01500                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>-1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>+1);
<a name="l01501"></a>01501                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, map::vide);
<a name="l01502"></a>01502                         <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a> -= 1;
<a name="l01503"></a>01503                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ae6328103dfcaf03ee9cd2656ca5fa6e6" title="Renvoie l&amp;#39;envent qui se trouve a la position X, Y.">getEvent</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>+1)-&gt;pos = <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>;
<a name="l01504"></a>01504                         <span class="comment">// On regarde si on pourra aller plus loin. Sinon =&gt; On supprime cette bombe de l&#39;event</span>
<a name="l01505"></a>01505                         <span class="keywordflow">if</span>( !(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a> &gt;= 1 &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>-1)-&gt;element == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>) ){
<a name="l01506"></a>01506                             <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a87d4d2405fe9f067a948d3edc24da1a0">remove</a>(i);
<a name="l01507"></a>01507                             i--;
<a name="l01508"></a>01508                         }<span class="keywordflow">else</span>{
<a name="l01509"></a>01509                             <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7bc9760c6a082bb8a4c6a5479cae8098" title="Time de la prochaine répétion.">repetionSuivante</a> = clock() + bonus::VITESSE_pousseBombe;
<a name="l01510"></a>01510                         }
<a name="l01511"></a>01511                     }<span class="keywordflow">else</span>{
<a name="l01512"></a>01512                         <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a87d4d2405fe9f067a948d3edc24da1a0">remove</a>(i);
<a name="l01513"></a>01513                         i--;
<a name="l01514"></a>01514                     }
<a name="l01515"></a>01515                     <span class="keywordflow">break</span>;
<a name="l01516"></a>01516                 }
<a name="l01517"></a>01517                 <span class="keywordflow">case</span> <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5aa59f5203b5e142fa7a139b875240ccb7">perso::ORI_bas</a>: {
<a name="l01518"></a>01518                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>+1 &lt; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abcb25776d119cd3f2864c67ec05a6a4a" title="Renvoie la taille Y de la map.">Y</a>() &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>+1)-&gt;element == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a> ){
<a name="l01519"></a>01519                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>+1, map::bombe_poser );
<a name="l01520"></a>01520                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>+1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>+1);
<a name="l01521"></a>01521                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, map::vide);
<a name="l01522"></a>01522                         <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a> += 1;
<a name="l01523"></a>01523                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ae6328103dfcaf03ee9cd2656ca5fa6e6" title="Renvoie l&amp;#39;envent qui se trouve a la position X, Y.">getEvent</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>-1)-&gt;pos = <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>;
<a name="l01524"></a>01524                         <span class="comment">// On regarde si on pourra aller plus loin. Sinon =&gt; On supprime cette bombe de l&#39;event</span>
<a name="l01525"></a>01525                         <span class="keywordflow">if</span>( !(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>+1 &lt; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abcb25776d119cd3f2864c67ec05a6a4a" title="Renvoie la taille Y de la map.">Y</a>() &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>+1)-&gt;element == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>) ){
<a name="l01526"></a>01526                             <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a87d4d2405fe9f067a948d3edc24da1a0">remove</a>(i);
<a name="l01527"></a>01527                             i--;
<a name="l01528"></a>01528                         }<span class="keywordflow">else</span>{
<a name="l01529"></a>01529                             <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7bc9760c6a082bb8a4c6a5479cae8098" title="Time de la prochaine répétion.">repetionSuivante</a> = clock() + bonus::VITESSE_pousseBombe;
<a name="l01530"></a>01530                         }
<a name="l01531"></a>01531                     }<span class="keywordflow">else</span>{
<a name="l01532"></a>01532                         <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a87d4d2405fe9f067a948d3edc24da1a0">remove</a>(i);
<a name="l01533"></a>01533                         i--;
<a name="l01534"></a>01534                     }
<a name="l01535"></a>01535                     <span class="keywordflow">break</span>;
<a name="l01536"></a>01536                 }
<a name="l01537"></a>01537                 <span class="keywordflow">case</span> <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5ab3e12149a43ed9f6c1ed651c7b7130a5">perso::ORI_droite</a>: {
<a name="l01538"></a>01538                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>+1 &lt; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abc682d96c6d194b75d2e8a6430b5b076" title="Renvoie la taille X de la map.">X</a>() &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>+1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>)-&gt;element == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a> ){
<a name="l01539"></a>01539                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>+1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, map::bombe_poser );
<a name="l01540"></a>01540                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>+1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>+1);
<a name="l01541"></a>01541                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, map::vide);
<a name="l01542"></a>01542                         <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a> += 1;
<a name="l01543"></a>01543                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ae6328103dfcaf03ee9cd2656ca5fa6e6" title="Renvoie l&amp;#39;envent qui se trouve a la position X, Y.">getEvent</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>-1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>)-&gt;pos = <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>;
<a name="l01544"></a>01544                         <span class="comment">// On regarde si on pourra aller plus loin. Sinon =&gt; On supprime cette bombe de l&#39;event</span>
<a name="l01545"></a>01545                         <span class="keywordflow">if</span>( !(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>+1 &lt; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abc682d96c6d194b75d2e8a6430b5b076" title="Renvoie la taille X de la map.">X</a>() &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>+1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>)-&gt;element == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>) ){
<a name="l01546"></a>01546                             <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a87d4d2405fe9f067a948d3edc24da1a0">remove</a>(i);
<a name="l01547"></a>01547                             i--;
<a name="l01548"></a>01548                         }<span class="keywordflow">else</span>{
<a name="l01549"></a>01549                             <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7bc9760c6a082bb8a4c6a5479cae8098" title="Time de la prochaine répétion.">repetionSuivante</a> = clock() + bonus::VITESSE_pousseBombe;
<a name="l01550"></a>01550                         }
<a name="l01551"></a>01551                     }<span class="keywordflow">else</span>{
<a name="l01552"></a>01552                         <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a87d4d2405fe9f067a948d3edc24da1a0">remove</a>(i);
<a name="l01553"></a>01553                         i--;
<a name="l01554"></a>01554                     }
<a name="l01555"></a>01555                     <span class="keywordflow">break</span>;
<a name="l01556"></a>01556                 }
<a name="l01557"></a>01557                 <span class="keywordflow">case</span> <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5ab905cf580d7a21ed24b5917ddc8fe517">perso::ORI_gauche</a>: {
<a name="l01558"></a>01558                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a> &gt;= 1 &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>-1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>)-&gt;element == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a> ){
<a name="l01559"></a>01559                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>-1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, map::bombe_poser );
<a name="l01560"></a>01560                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>( <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>-1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>+1);
<a name="l01561"></a>01561                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, map::vide);
<a name="l01562"></a>01562                         <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a> -= 1;
<a name="l01563"></a>01563                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7968b0a108aea965ba8a35da7ab159f2" title="Le joueur a qui appartient la bombe [0-...[.">joueur</a>].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ae6328103dfcaf03ee9cd2656ca5fa6e6" title="Renvoie l&amp;#39;envent qui se trouve a la position X, Y.">getEvent</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>+1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>)-&gt;pos = <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>;
<a name="l01564"></a>01564                         <span class="comment">// On regarde si on pourra aller plus loin. Sinon =&gt; On supprime cette bombe de l&#39;event</span>
<a name="l01565"></a>01565                         <span class="keywordflow">if</span>( !(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a> &gt;= 1 &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(<a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>-1, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#ad69694d75ceb3610fff0393c195f8272" title="Position de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>)-&gt;element == <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>) ){
<a name="l01566"></a>01566                             <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a87d4d2405fe9f067a948d3edc24da1a0">remove</a>(i);
<a name="l01567"></a>01567                             i--;
<a name="l01568"></a>01568                         }<span class="keywordflow">else</span>{
<a name="l01569"></a>01569                             <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a7bc9760c6a082bb8a4c6a5479cae8098" title="Time de la prochaine répétion.">repetionSuivante</a> = clock() + bonus::VITESSE_pousseBombe;
<a name="l01570"></a>01570                         }
<a name="l01571"></a>01571                     }<span class="keywordflow">else</span>{
<a name="l01572"></a>01572                         <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a87d4d2405fe9f067a948d3edc24da1a0">remove</a>(i);
<a name="l01573"></a>01573                         i--;
<a name="l01574"></a>01574                     }
<a name="l01575"></a>01575                     <span class="keywordflow">break</span>;
<a name="l01576"></a>01576                 }
<a name="l01577"></a>01577                 <span class="keywordflow">default</span>:{
<a name="l01578"></a>01578                     stdErrorE(<span class="stringliteral">&quot;Erreur, orientation incorrect ! %d&quot;</span>, <a class="code" href="classpartie.html#a9beddd8cb7b08b46ecf47997c0e3d969">c_listEventPouseBombe</a>.<a class="code" href="class_q_list.html#a250d44beb2d93d79cb9543ed6988f72f">at</a>(i).<a class="code" href="structpartie_1_1s___event_pousse_bombe.html#a09dda126b50ee4c1f29ed7b2b206c702" title="Direction de la bombe.">direction</a>);
<a name="l01579"></a>01579                 }
<a name="l01580"></a>01580             }
<a name="l01581"></a>01581         }
<a name="l01582"></a>01582     }
<a name="l01583"></a>01583 }
<a name="l01584"></a>01584 
<a name="l01585"></a>01585 
<a name="l01586"></a>01586 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l01587"></a>01587 <span class="comment">* @fn void partie::checkInternalEvent()</span>
<a name="l01588"></a>01588 <span class="comment">* @brief Analyse et traite les Event internes pour une partie F4A</span>
<a name="l01589"></a>01589 <span class="comment">*/</span>
<a name="l01590"></a><a class="code" href="classpartie.html#aee9a20735d2ef1811b44b6b535950189">01590</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#aee9a20735d2ef1811b44b6b535950189" title="Analyse et traite les Event internes pour une partie F4A.">partie::checkInternalEvent</a>()
<a name="l01591"></a>01591 {
<a name="l01592"></a>01592     <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i;
<a name="l01593"></a>01593 
<a name="l01594"></a>01594     <span class="comment">/***************************************************************************</span>
<a name="l01595"></a>01595 <span class="comment">    * Horloge</span>
<a name="l01596"></a>01596 <span class="comment">    */</span>
<a name="l01597"></a>01597     <span class="comment">// Vague 1: On enlève tout les blocks Mur_destructible</span>
<a name="l01598"></a>01598     <span class="comment">// Vague &gt;1: On met 2 Mur_INdestructible</span>
<a name="l01599"></a>01599     <span class="keywordflow">if</span>( clock() &gt;= <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a> &amp;&amp; <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a> != 0 ){
<a name="l01600"></a>01600         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a49e9e36c859300de41d9396f5770016a">c_timerAttak</a> == 0 ){
<a name="l01601"></a>01601             <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> x=0, y=0; y&lt;<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abcb25776d119cd3f2864c67ec05a6a4a" title="Renvoie la taille Y de la map.">Y</a>(); y++ )
<a name="l01602"></a>01602             {
<a name="l01603"></a>01603                 <span class="keywordflow">for</span>( x=0; x&lt;<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abc682d96c6d194b75d2e8a6430b5b076" title="Renvoie la taille X de la map.">X</a>(); x++ )
<a name="l01604"></a>01604                 {
<a name="l01605"></a>01605                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;element == map::Mur_destructible ){
<a name="l01606"></a>01606                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(x, y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a>);
<a name="l01607"></a>01607                         <a class="code" href="classpartie.html#a49e9e36c859300de41d9396f5770016a">c_timerAttak</a>++;<span class="comment">// On compte le nombre d&#39;emplacement vide</span>
<a name="l01608"></a>01608                     }<span class="keywordflow">else</span>{
<a name="l01609"></a>01609                         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;element == map::vide )
<a name="l01610"></a>01610                             <a class="code" href="classpartie.html#a49e9e36c859300de41d9396f5770016a">c_timerAttak</a>++;<span class="comment">// On compte le nombre d&#39;emplacement vide</span>
<a name="l01611"></a>01611                     }
<a name="l01612"></a>01612                 }
<a name="l01613"></a>01613             }
<a name="l01614"></a>01614             <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a> = clock()+ 5*CLOCKS_PER_SEC;<span class="comment">// 5secs avant l&#39;attaque final</span>
<a name="l01615"></a>01615         }<span class="keywordflow">else</span>{
<a name="l01616"></a>01616             <span class="keywordtype">unsigned</span> x=0, y=0;
<a name="l01617"></a>01617             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a49e9e36c859300de41d9396f5770016a">c_timerAttak</a> &gt; 5 ){
<a name="l01618"></a>01618                 <span class="keywordtype">bool</span> positionInitial = 0;
<a name="l01619"></a>01619                 <span class="keywordflow">do</span>{
<a name="l01620"></a>01620                     y = <a class="code" href="outils_8cpp.html#a5ee0533ff07a519f3fce335a2f57f157" title="Créer un nombre aléatoire compris entre a et b.">myRand</a>(0, <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abcb25776d119cd3f2864c67ec05a6a4a" title="Renvoie la taille Y de la map.">Y</a>()-1);
<a name="l01621"></a>01621                     x = <a class="code" href="outils_8cpp.html#a5ee0533ff07a519f3fce335a2f57f157" title="Créer un nombre aléatoire compris entre a et b.">myRand</a>(0, <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abc682d96c6d194b75d2e8a6430b5b076" title="Renvoie la taille X de la map.">X</a>()-1);
<a name="l01622"></a>01622                     <span class="keywordflow">for</span>( i=0; i&lt;<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a8d73464b1277da47780e984631039299" title="Renvoie le nombre de joueur maximum sur la carte en cours.">nb_PointDeDepartJoueur</a>(); i++ )
<a name="l01623"></a>01623                     {
<a name="l01624"></a>01624                         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69a17c9066d0cc1b9cf2f0123db3114e" title="Renvoie la position initial du joueur.">positionInitialJoueur</a>(i+1).<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a> == x &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69a17c9066d0cc1b9cf2f0123db3114e" title="Renvoie la position initial du joueur.">positionInitialJoueur</a>(i+1).<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a> == y ){
<a name="l01625"></a>01625                             positionInitial = 1;
<a name="l01626"></a>01626                             <span class="keywordflow">break</span>;
<a name="l01627"></a>01627                         }<span class="keywordflow">else</span>{
<a name="l01628"></a>01628                             positionInitial = 0;
<a name="l01629"></a>01629                         }
<a name="l01630"></a>01630                     }
<a name="l01631"></a>01631 
<a name="l01632"></a>01632                 }<span class="keywordflow">while</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;element != <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba508b0ad2c59b8c654beb73d2239c8e74">map::vide</a> || positionInitial == true );
<a name="l01633"></a>01633                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(x, y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba1bae257451fe92ef4fafd02fed56a850">map::Mur_INdestructible</a>);
<a name="l01634"></a>01634 
<a name="l01635"></a>01635                 <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a> = clock()+ CLOCKS_PER_SEC;
<a name="l01636"></a>01636                 <a class="code" href="classpartie.html#a49e9e36c859300de41d9396f5770016a">c_timerAttak</a>--;<span class="comment">// On a une case vide en moins</span>
<a name="l01637"></a>01637             }<span class="keywordflow">else</span>{
<a name="l01638"></a>01638                 <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a> = 0;
<a name="l01639"></a>01639             }
<a name="l01640"></a>01640         }
<a name="l01641"></a>01641     }
<a name="l01642"></a>01642 
<a name="l01643"></a>01643     <span class="comment">/***************************************************************************</span>
<a name="l01644"></a>01644 <span class="comment">    * Events Pousse Bombe</span>
<a name="l01645"></a>01645 <span class="comment">    */</span>
<a name="l01646"></a>01646     <a class="code" href="classpartie.html#aa5cca051f9f07d1b267f5a4df8dabd24" title="Scan les event du bonus pousse bombe.">checkInternalEventPousseBombe</a>();
<a name="l01647"></a>01647 
<a name="l01648"></a>01648     <span class="comment">/***************************************************************************</span>
<a name="l01649"></a>01649 <span class="comment">    * Events Bombe</span>
<a name="l01650"></a>01650 <span class="comment">    */</span>
<a name="l01651"></a>01651     <span class="keywordflow">for</span>( i=0; i&lt;<a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.size(); i++ )
<a name="l01652"></a>01652     {
<a name="l01653"></a>01653         <span class="comment">// Tant que l&#39;on a pas atteint le temps</span>
<a name="l01654"></a>01654         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(i).repetionSuivante &gt; clock() ) <span class="keywordflow">continue</span>;
<a name="l01655"></a>01655 
<a name="l01656"></a>01656         <a class="code" href="structpartie_1_1s___event_bombe.html" title="Permet de gérer les event des bombes.">s_EventBombe</a>&amp; e = <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(i);
<a name="l01657"></a>01657 
<a name="l01658"></a>01658         <span class="comment">/***************************************************************</span>
<a name="l01659"></a>01659 <span class="comment">        * Encore un tour ?</span>
<a name="l01660"></a>01660 <span class="comment">        * On efface les trace des bombes</span>
<a name="l01661"></a>01661 <span class="comment">        */</span>
<a name="l01662"></a>01662         <span class="keywordflow">if</span>( e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a> &gt; e.<a class="code" href="structpartie_1_1s___event_bombe.html#a243f3673f6e8c001dd287682f4faa7ea" title="Nombre de répétition MAX pour l&amp;#39;event.">Nb_Repetition_MAX</a> ){<span class="comment">// On a fini ! Plus de tour</span>
<a name="l01663"></a>01663             <span class="comment">// Suppression des blocks en-flammé</span>
<a name="l01664"></a>01664             <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j=0; j&lt;e.<a class="code" href="structpartie_1_1s___event_bombe.html#a5bc44336228acdabc2a017f0a6042057" title="Contient la position de tous block qui ont été touchés par la déflagration.">deflagration</a>.size(); j++ )
<a name="l01665"></a>01665             {
<a name="l01666"></a>01666                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#a5bc44336228acdabc2a017f0a6042057" title="Contient la position de tous block qui ont été touchés par la déflagration.">deflagration</a>.at(j).x, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a5bc44336228acdabc2a017f0a6042057" title="Contient la position de tous block qui ont été touchés par la déflagration.">deflagration</a>.at(j).y, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a4fe3f1be04c668bce6931ce89da49767" title="Le joueur qui est la cause de l&amp;#39;event.">joueur</a>, <span class="keyword">true</span>);
<a name="l01667"></a>01667                 <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#a5bc44336228acdabc2a017f0a6042057" title="Contient la position de tous block qui ont été touchés par la déflagration.">deflagration</a>.at(j))-&gt;<a class="code" href="classpartie.html#aa259db60507f45e2307fa457879be8ee" title="Renvoie un joueur.">joueur</a>-&gt;size() )
<a name="l01668"></a>01668                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#a5bc44336228acdabc2a017f0a6042057" title="Contient la position de tous block qui ont été touchés par la déflagration.">deflagration</a>.at(j), map::vide);
<a name="l01669"></a>01669             }
<a name="l01670"></a>01670 
<a name="l01671"></a>01671             <span class="comment">// Pop des bonus</span>
<a name="l01672"></a>01672             <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j=0; j&lt;e.<a class="code" href="structpartie_1_1s___event_bombe.html#ab6257418de0a5cc8afd637447732c8f0" title="Contient la liste des block qui ont été détruit =&amp;gt; Bonus a la clef ^^.">listBlockDetruit</a>.size(); j++ )
<a name="l01673"></a>01673             {
<a name="l01674"></a>01674                 <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#ab6257418de0a5cc8afd637447732c8f0" title="Contient la liste des block qui ont été détruit =&amp;gt; Bonus a la clef ^^.">listBlockDetruit</a>.at(j))-&gt;<a class="code" href="classpartie.html#aa259db60507f45e2307fa457879be8ee" title="Renvoie un joueur.">joueur</a>-&gt;size() ){<span class="comment">// One ne fait rien pop si il y a déjà quelqu&#39;un à cette emplacement ou si il y a des flammes enemis</span>
<a name="l01675"></a>01675                     <a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7ef" title="Les types de bonus possible dans le jeu.">bonus::t_Bonus</a> tmp = <a class="code" href="classbonus.html#a4b5bd7441505cebab7959b7b7b49ec70" title="Renvoie un bonus aléatoire.">bonus::getBonusAleatoire</a>();
<a name="l01676"></a>01676                     <span class="keywordflow">if</span>( tmp == <a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efae1ab0b7bbc4bd501f72f12979b6208bd" title="Sert pour bonus::getBonusAleatoire();.">bonus::__RIEN__</a> ){
<a name="l01677"></a>01677                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#ab6257418de0a5cc8afd637447732c8f0" title="Contient la liste des block qui ont été détruit =&amp;gt; Bonus a la clef ^^.">listBlockDetruit</a>.at(j), map::vide);
<a name="l01678"></a>01678                     }<span class="keywordflow">else</span>{
<a name="l01679"></a>01679                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#ab6257418de0a5cc8afd637447732c8f0" title="Contient la liste des block qui ont été détruit =&amp;gt; Bonus a la clef ^^.">listBlockDetruit</a>.at(j).x, e.<a class="code" href="structpartie_1_1s___event_bombe.html#ab6257418de0a5cc8afd637447732c8f0" title="Contient la liste des block qui ont été détruit =&amp;gt; Bonus a la clef ^^.">listBlockDetruit</a>.at(j).y);<span class="comment">// Pour supprimer tout les meta-info</span>
<a name="l01680"></a>01680                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#ab6257418de0a5cc8afd637447732c8f0" title="Contient la liste des block qui ont été détruit =&amp;gt; Bonus a la clef ^^.">listBlockDetruit</a>.at(j), map::bonus);
<a name="l01681"></a>01681                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#ab6257418de0a5cc8afd637447732c8f0" title="Contient la liste des block qui ont été détruit =&amp;gt; Bonus a la clef ^^.">listBlockDetruit</a>.at(j).x,e.<a class="code" href="structpartie_1_1s___event_bombe.html#ab6257418de0a5cc8afd637447732c8f0" title="Contient la liste des block qui ont été détruit =&amp;gt; Bonus a la clef ^^.">listBlockDetruit</a>.at(j).y, (<span class="keywordtype">unsigned</span> char)tmp, 1);
<a name="l01682"></a>01682                     }
<a name="l01683"></a>01683                 }
<a name="l01684"></a>01684             }
<a name="l01685"></a>01685             <span class="comment">// Fin de l&#39;event =&gt; out de la liste</span>
<a name="l01686"></a>01686             <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.erase(<a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.begin()+i);
<a name="l01687"></a>01687             i--;
<a name="l01688"></a>01688 
<a name="l01689"></a>01689         }<span class="keywordflow">else</span>{<span class="comment">// ENCORE un tour</span>
<a name="l01690"></a>01690 
<a name="l01691"></a>01691             <span class="comment">// Création de la déflagration</span>
<a name="l01692"></a>01692             <span class="keywordflow">if</span>( e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a> == 0 ){<span class="comment">// On ne traite que le centre le 1er tour</span>
<a name="l01693"></a>01693                 <a class="code" href="classpartie.html#a73cfde8c2c40efa5d245892e46fa488b" title="Tue les joueurs et détruit les block destructibles (Mode: F4A).">killPlayers</a>(&amp;e, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>);<span class="comment">// Adition des flammes avec le reste de l&#39;environement</span>
<a name="l01694"></a>01694                 <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bac331e3cb1090bc086fc8aec8c40f8d90">map::flamme_origine</a>);
<a name="l01695"></a>01695                 e.<a class="code" href="structpartie_1_1s___event_bombe.html#a5bc44336228acdabc2a017f0a6042057" title="Contient la position de tous block qui ont été touchés par la déflagration.">deflagration</a>.push_back( <a class="code" href="coordonnees_8h.html#a6672966a8002c5f5e0a711f7029b0e7d" title="Permet de créer facillement une stucture s_Coordonnees initialisée.">coordonneeConvert</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>) );
<a name="l01696"></a>01696 
<a name="l01697"></a>01697                 <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(i).Nb_Repetition++;
<a name="l01698"></a>01698                 <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(i).repetionSuivante = clock() + bonus::VITESSE_flammes;<span class="comment">// Ajustement du temps</span>
<a name="l01699"></a>01699 
<a name="l01700"></a>01700                 <span class="keywordflow">continue</span>;
<a name="l01701"></a>01701             }
<a name="l01702"></a>01702 
<a name="l01703"></a>01703             <span class="comment">// Flamme gauche</span>
<a name="l01704"></a>01704             <span class="keywordflow">if</span>( e.<a class="code" href="structpartie_1_1s___event_bombe.html#a6f956e28d94e9da3948d068d45c77402">continue_negativeX</a> ){
<a name="l01705"></a>01705                 <span class="keywordtype">char</span> r = <a class="code" href="classpartie.html#a1cf470a670f496543252061409f10c4a" title="Positionne les flammes en fonction de l&amp;#39;environement.">actionSurLesElements</a>( &amp;e, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>-e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, -1 );
<a name="l01706"></a>01706                 <span class="keywordflow">if</span>( r == -1 || r == 0 )
<a name="l01707"></a>01707                     e.<a class="code" href="structpartie_1_1s___event_bombe.html#a6f956e28d94e9da3948d068d45c77402">continue_negativeX</a> = <span class="keyword">false</span>;
<a name="l01708"></a>01708                 <span class="keywordflow">if</span>( r == 0 || r == 1 )
<a name="l01709"></a>01709                     e.<a class="code" href="structpartie_1_1s___event_bombe.html#a5bc44336228acdabc2a017f0a6042057" title="Contient la position de tous block qui ont été touchés par la déflagration.">deflagration</a>.push_back( <a class="code" href="coordonnees_8h.html#a6672966a8002c5f5e0a711f7029b0e7d" title="Permet de créer facillement une stucture s_Coordonnees initialisée.">coordonneeConvert</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>-e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>) );
<a name="l01710"></a>01710             }
<a name="l01711"></a>01711 
<a name="l01712"></a>01712             <span class="comment">// Flamme droite</span>
<a name="l01713"></a>01713             <span class="keywordflow">if</span>( e.<a class="code" href="structpartie_1_1s___event_bombe.html#a760f3e827ce08e7b59f74abf166e241d">continue_X</a> ){
<a name="l01714"></a>01714                 <span class="keywordtype">char</span> r = <a class="code" href="classpartie.html#a1cf470a670f496543252061409f10c4a" title="Positionne les flammes en fonction de l&amp;#39;environement.">actionSurLesElements</a>( &amp;e, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>+e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>, +1 );
<a name="l01715"></a>01715                 <span class="keywordflow">if</span>( r == -1 || r == 0 )
<a name="l01716"></a>01716                     e.<a class="code" href="structpartie_1_1s___event_bombe.html#a760f3e827ce08e7b59f74abf166e241d">continue_X</a> = <span class="keyword">false</span>;
<a name="l01717"></a>01717                 <span class="keywordflow">if</span>( r == 0 || r == 1 )
<a name="l01718"></a>01718                     e.<a class="code" href="structpartie_1_1s___event_bombe.html#a5bc44336228acdabc2a017f0a6042057" title="Contient la position de tous block qui ont été touchés par la déflagration.">deflagration</a>.push_back( <a class="code" href="coordonnees_8h.html#a6672966a8002c5f5e0a711f7029b0e7d" title="Permet de créer facillement une stucture s_Coordonnees initialisée.">coordonneeConvert</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>+e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>) );
<a name="l01719"></a>01719             }
<a name="l01720"></a>01720 
<a name="l01721"></a>01721             <span class="comment">// Flamme haut</span>
<a name="l01722"></a>01722             <span class="keywordflow">if</span>( e.<a class="code" href="structpartie_1_1s___event_bombe.html#a8f96500c47c056f4354dbb902b485567">continue_negativeY</a> ){
<a name="l01723"></a>01723                 <span class="keywordtype">char</span> r = <a class="code" href="classpartie.html#a1cf470a670f496543252061409f10c4a" title="Positionne les flammes en fonction de l&amp;#39;environement.">actionSurLesElements</a>( &amp;e, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>-e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a>, -2 );
<a name="l01724"></a>01724                 <span class="keywordflow">if</span>( r == -1 || r == 0 )
<a name="l01725"></a>01725                     e.<a class="code" href="structpartie_1_1s___event_bombe.html#a8f96500c47c056f4354dbb902b485567">continue_negativeY</a> = <span class="keyword">false</span>;
<a name="l01726"></a>01726                 <span class="keywordflow">if</span>( r == 0 || r == 1 )
<a name="l01727"></a>01727                     e.<a class="code" href="structpartie_1_1s___event_bombe.html#a5bc44336228acdabc2a017f0a6042057" title="Contient la position de tous block qui ont été touchés par la déflagration.">deflagration</a>.push_back( <a class="code" href="coordonnees_8h.html#a6672966a8002c5f5e0a711f7029b0e7d" title="Permet de créer facillement une stucture s_Coordonnees initialisée.">coordonneeConvert</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>-e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a>) );
<a name="l01728"></a>01728             }
<a name="l01729"></a>01729 
<a name="l01730"></a>01730             <span class="comment">// Flamme bas</span>
<a name="l01731"></a>01731             <span class="keywordflow">if</span>( e.<a class="code" href="structpartie_1_1s___event_bombe.html#adb2b43bd211a7c7a9d24ed1284ebe722">continue_Y</a> ){
<a name="l01732"></a>01732                 <span class="keywordtype">char</span> r = <a class="code" href="classpartie.html#a1cf470a670f496543252061409f10c4a" title="Positionne les flammes en fonction de l&amp;#39;environement.">actionSurLesElements</a>( &amp;e, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>+e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a>, +2 );
<a name="l01733"></a>01733                 <span class="keywordflow">if</span>( r == -1 || r == 0 )
<a name="l01734"></a>01734                     e.<a class="code" href="structpartie_1_1s___event_bombe.html#adb2b43bd211a7c7a9d24ed1284ebe722">continue_Y</a> = <span class="keyword">false</span>;
<a name="l01735"></a>01735                 <span class="keywordflow">if</span>( r == 0 || r == 1 )
<a name="l01736"></a>01736                     e.<a class="code" href="structpartie_1_1s___event_bombe.html#a5bc44336228acdabc2a017f0a6042057" title="Contient la position de tous block qui ont été touchés par la déflagration.">deflagration</a>.push_back( <a class="code" href="coordonnees_8h.html#a6672966a8002c5f5e0a711f7029b0e7d" title="Permet de créer facillement une stucture s_Coordonnees initialisée.">coordonneeConvert</a>(e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#a58e4c6bec574940d228bf0a1b8b6b308">x</a>, e.<a class="code" href="structpartie_1_1s___event_bombe.html#a9b17191ab60292057711dfb2051db55f" title="Position Originel de l&amp;#39;event.">pos</a>.<a class="code" href="structs___coordonnees.html#aaf8eb7cb396be8207c9c3c63a806de51">y</a>+e.<a class="code" href="structpartie_1_1s___event_bombe.html#a0f5ae6c44c08fb389bd21310c48ab27c" title="Nombre de répétition actuel pour l&amp;#39;event.">Nb_Repetition</a>) );
<a name="l01737"></a>01737             }
<a name="l01738"></a>01738 
<a name="l01739"></a>01739             <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(i).Nb_Repetition++;
<a name="l01740"></a>01740             <a class="code" href="classpartie.html#afbcb661bac4e4b37b054dbaa21b80b55">c_listEventBombe</a>.at(i).repetionSuivante = clock() + bonus::VITESSE_flammes;<span class="comment">// * CLOCKS_PER_SEC;// Ajustement du temps</span>
<a name="l01741"></a>01741         }
<a name="l01742"></a>01742 
<a name="l01743"></a>01743     }
<a name="l01744"></a>01744 }
<a name="l01745"></a>01745 
<a name="l01746"></a>01746 
<a name="l01747"></a>01747 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l01748"></a>01748 <span class="comment">* @fn char partie::actionSurLesElements( s_EventBombe* e, unsigned int x, unsigned int y, char direction )</span>
<a name="l01749"></a>01749 <span class="comment">* @brief Positionne les flammes en fonction de l&#39;environement</span>
<a name="l01750"></a>01750 <span class="comment">* @param[in,out] e L&#39;event en cours</span>
<a name="l01751"></a>01751 <span class="comment">* @param[in] x Position X de la map a check</span>
<a name="l01752"></a>01752 <span class="comment">* @param[in] y Position Y de la map a check</span>
<a name="l01753"></a>01753 <span class="comment">* @param[in] direction Direction des flammes</span>
<a name="l01754"></a>01754 <span class="comment">* @return 3 Valeurs de retoures possible&lt;br /&gt;</span>
<a name="l01755"></a>01755 <span class="comment">*           - -1 On stop tout et on ne touche pas au block à cette adresse ! (Out of map ou Mur_INdestructible)</span>
<a name="l01756"></a>01756 <span class="comment">*           -  0 On stop tout mais on traite le block à l&#39;adresse (Mur_destructible)</span>
<a name="l01757"></a>01757 <span class="comment">*           -  1 On continue</span>
<a name="l01758"></a>01758 <span class="comment">*</span>
<a name="l01759"></a>01759 <span class="comment">* @note On retourne la valeur de partie::killPlayers( s_EventBombe* e, unsigned int x, unsigned int y )</span>
<a name="l01760"></a>01760 <span class="comment">*/</span>
<a name="l01761"></a><a class="code" href="classpartie.html#a1cf470a670f496543252061409f10c4a">01761</a> <span class="keywordtype">char</span> <a class="code" href="classpartie.html#a1cf470a670f496543252061409f10c4a" title="Positionne les flammes en fonction de l&amp;#39;environement.">partie::actionSurLesElements</a>( <a class="code" href="structpartie_1_1s___event_bombe.html" title="Permet de gérer les event des bombes.">s_EventBombe</a>* e, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> y, <span class="keywordtype">char</span> direction )
<a name="l01762"></a>01762 {
<a name="l01763"></a>01763     <span class="keywordtype">char</span> continuer = 1;
<a name="l01764"></a>01764     <span class="keywordflow">switch</span>( <a class="code" href="classpartie.html#a73cfde8c2c40efa5d245892e46fa488b" title="Tue les joueurs et détruit les block destructibles (Mode: F4A).">killPlayers</a>(e, x, y) )
<a name="l01765"></a>01765     {
<a name="l01766"></a>01766         <span class="keywordflow">case</span> -1: {
<a name="l01767"></a>01767             <span class="keywordflow">return</span> -1;
<a name="l01768"></a>01768         }
<a name="l01769"></a>01769         <span class="keywordflow">case</span> 0: {
<a name="l01770"></a>01770             continuer = 0;
<a name="l01771"></a>01771         }<span class="comment">// Pas de break pour lire le block du dessous</span>
<a name="l01772"></a>01772         <span class="keywordflow">case</span> 1: {
<a name="l01773"></a>01773             <span class="keywordflow">switch</span>( direction )
<a name="l01774"></a>01774             {
<a name="l01775"></a>01775                 <span class="keywordflow">case</span> -2:{<span class="comment">// -Y</span>
<a name="l01776"></a>01776                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y+1)-&gt;element != map::flamme_origine )
<a name="l01777"></a>01777                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(x, y+1, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bac2726a799ffd38fb4b89989f24d40e7e">map::flamme_vertical</a>);
<a name="l01778"></a>01778 
<a name="l01779"></a>01779                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(x, y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bab794750be41b582091eb2b4c480581e4">map::flamme_pointe_haut</a>);
<a name="l01780"></a>01780                     <span class="keywordflow">break</span>;
<a name="l01781"></a>01781                 }
<a name="l01782"></a>01782                 <span class="keywordflow">case</span> 2:{<span class="comment">// +Y</span>
<a name="l01783"></a>01783                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y-1)-&gt;element != map::flamme_origine )
<a name="l01784"></a>01784                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(x, y-1, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bac2726a799ffd38fb4b89989f24d40e7e">map::flamme_vertical</a>);
<a name="l01785"></a>01785 
<a name="l01786"></a>01786                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(x, y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba09c901a81e700c77bcd7886584f1c443">map::flamme_pointe_bas</a>);
<a name="l01787"></a>01787                     <span class="keywordflow">break</span>;
<a name="l01788"></a>01788                 }
<a name="l01789"></a>01789                 <span class="keywordflow">case</span> -1:{<span class="comment">// -X</span>
<a name="l01790"></a>01790                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x+1, y)-&gt;element != map::flamme_origine )
<a name="l01791"></a>01791                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(x+1, y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba0b01d857d4519d6da4b8833433a718d0">map::flamme_horizontal</a>);
<a name="l01792"></a>01792 
<a name="l01793"></a>01793                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(x, y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba08c81a1be9eb74cd270ee9aba56122a7">map::flamme_pointe_gauche</a>);
<a name="l01794"></a>01794                     <span class="keywordflow">break</span>;
<a name="l01795"></a>01795                 }
<a name="l01796"></a>01796                 <span class="keywordflow">case</span> 1:{<span class="comment">// +X</span>
<a name="l01797"></a>01797                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x-1, y)-&gt;element != map::flamme_origine )
<a name="l01798"></a>01798                         <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(x-1, y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba0b01d857d4519d6da4b8833433a718d0">map::flamme_horizontal</a>);
<a name="l01799"></a>01799 
<a name="l01800"></a>01800                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a9daefd4b8e29eba7b98b734ce4530fea" title="Modifie le block qui est à la position X, Y.">setBlock</a>(x, y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba62944c1454be834def9f3dd83c71bfe1">map::flamme_pointe_droite</a>);
<a name="l01801"></a>01801                     <span class="keywordflow">break</span>;
<a name="l01802"></a>01802                 }
<a name="l01803"></a>01803             }
<a name="l01804"></a>01804             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(x, y);<span class="comment">// On supprime toutes les info qui était présente</span>
<a name="l01805"></a>01805             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>(x, y, e-&gt;<a class="code" href="structpartie_1_1s___event_bombe.html#a4fe3f1be04c668bce6931ce89da49767" title="Le joueur qui est la cause de l&amp;#39;event.">joueur</a>, 1);<span class="comment">// On dit a qui appartient la flamme</span>
<a name="l01806"></a>01806             <span class="keywordflow">break</span>;
<a name="l01807"></a>01807         }
<a name="l01808"></a>01808     }
<a name="l01809"></a>01809     <span class="keywordflow">return</span> continuer;
<a name="l01810"></a>01810 }
<a name="l01811"></a>01811 
<a name="l01812"></a>01812 
<a name="l01813"></a>01813 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l01814"></a>01814 <span class="comment">* @fn char partie::killPlayers( s_EventBombe* e, unsigned int x, unsigned int y )</span>
<a name="l01815"></a>01815 <span class="comment">* @brief Tue les joueurs et détruit les block destructibles (Mode: F4A)</span>
<a name="l01816"></a>01816 <span class="comment">* @param[in,out] e L&#39;event en cours</span>
<a name="l01817"></a>01817 <span class="comment">* @param[in] x Position X de la map a check</span>
<a name="l01818"></a>01818 <span class="comment">* @param[in] y Position Y de la map a check</span>
<a name="l01819"></a>01819 <span class="comment">* @return 3 Valeurs de retoures possible&lt;br /&gt;</span>
<a name="l01820"></a>01820 <span class="comment">*           - -1 On stop tout et on ne touche pas au block à cette adresse ! (Out of map ou Mur_INdestructible)</span>
<a name="l01821"></a>01821 <span class="comment">*           -  0 On stop tout mais on traite le block à l&#39;adresse (Mur_destructible)</span>
<a name="l01822"></a>01822 <span class="comment">*           -  1 On continue</span>
<a name="l01823"></a>01823 <span class="comment">*</span>
<a name="l01824"></a>01824 <span class="comment">* @note Les valeurs de X et de Y sont comparées à la taille de la map =&gt; Pas de risque de sortir de la map</span>
<a name="l01825"></a>01825 <span class="comment">*/</span>
<a name="l01826"></a><a class="code" href="classpartie.html#a73cfde8c2c40efa5d245892e46fa488b">01826</a> <span class="keywordtype">char</span> <a class="code" href="classpartie.html#a73cfde8c2c40efa5d245892e46fa488b" title="Tue les joueurs et détruit les block destructibles (Mode: F4A).">partie::killPlayers</a>( <a class="code" href="structpartie_1_1s___event_bombe.html" title="Permet de gérer les event des bombes.">s_EventBombe</a>* e, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> y )
<a name="l01827"></a>01827 {
<a name="l01828"></a>01828     <span class="comment">// k sert dans les boucle for comme compteur.</span>
<a name="l01829"></a>01829     <span class="comment">// Peut être utilisée sans problème</span>
<a name="l01830"></a>01830     <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k;<span class="comment">// ça ne sert à rien de la recréer à chaque fois</span>
<a name="l01831"></a>01831     <span class="keyword">static</span> <a class="code" href="structpartie_1_1s___event_bombe.html" title="Permet de gérer les event des bombes.">s_EventBombe</a> eAdd;
<a name="l01832"></a>01832     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> idJoueur;
<a name="l01833"></a>01833 
<a name="l01834"></a>01834     <span class="keywordflow">if</span>( x &gt;= <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abc682d96c6d194b75d2e8a6430b5b076" title="Renvoie la taille X de la map.">X</a>() || y &gt;= <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abcb25776d119cd3f2864c67ec05a6a4a" title="Renvoie la taille Y de la map.">Y</a>() )
<a name="l01835"></a>01835         <span class="keywordflow">return</span> -1;
<a name="l01836"></a>01836 
<a name="l01837"></a>01837     <span class="keywordflow">switch</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;element )
<a name="l01838"></a>01838     {
<a name="l01839"></a>01839         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba4829d7f791fe2537aaa05edf28cc6630">map::UN_joueur</a>: {<span class="comment">// Le pauvre joueur qui est au millieu du chemin de la flamme -&gt; dead</span>
<a name="l01840"></a>01840             idJoueur = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;at(0)-1;
<a name="l01841"></a>01841             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].armements()-&gt;quantiteUtilisable(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>) == 0 ){
<a name="l01842"></a>01842                 <span class="comment">// Le perso n&#39;a plus de vie</span>
<a name="l01843"></a>01843                 <span class="comment">// On le supprime de la carte</span>
<a name="l01844"></a>01844                 <span class="comment">// On force tout les events à ce mettre dans la file général</span>
<a name="l01845"></a>01845                 <span class="comment">// On active toutes les bombes</span>
<a name="l01846"></a>01846                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ad6c7196687883d064c8937d8b0b742b3" title="Met fin au temps d&amp;#39;attente de tous les event et ajoute le signal kill, qui signifit, qu&amp;#39;il faut supprimer l&amp;#39;armement.">kill</a>();
<a name="l01847"></a>01847             }<span class="keywordflow">else</span>{
<a name="l01848"></a>01848                 <span class="comment">// Il reste une vie au perso</span>
<a name="l01849"></a>01849                 <span class="comment">// On supprime une vie</span>
<a name="l01850"></a>01850                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a09ddd6bcfc30cc20ee55f41ee1885136" title="Décrémente quantite_utilisable.">decQuantiteUtilisable</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>);
<a name="l01851"></a>01851                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#aab77df64a0e6931d90af3f500721e5cd" title="Décrémente quantite_MAX_en_stock.">decQuantiteMAX_en_stock</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>);
<a name="l01852"></a>01852                 <a class="code" href="classpartie.html#a54c3b6294fadf3be0949fa19527f5370" title="Place un perso a sa position d&amp;#39;initial Si la case initial, contient :un bonus, =&amp;gt; ramasse le bonusdes flammes -&amp;gt; nétoyage de la case puis on place le perso.">placer_perso_position_initial</a>(idJoueur);
<a name="l01853"></a>01853             }
<a name="l01854"></a>01854             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(x, y);
<a name="l01855"></a>01855 
<a name="l01856"></a>01856             <span class="keywordflow">return</span> 1;
<a name="l01857"></a>01857         }
<a name="l01858"></a>01858         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469baa94a2d9d84a636b26e656df3e5ae16b8">map::plusieurs_joueurs</a>: {<span class="comment">// Les pauvres joueurs qui sont au millieu du chemin de la flamme -&gt; dead</span>
<a name="l01859"></a>01859             <span class="keywordflow">for</span>( k=0; k&lt;<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;size(); k++ )
<a name="l01860"></a>01860             {
<a name="l01861"></a>01861                 idJoueur = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;at(k)-1;
<a name="l01862"></a>01862                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].armements()-&gt;quantiteUtilisable(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>) == 0 ){
<a name="l01863"></a>01863                     <span class="comment">// Le perso n&#39;a plus de vie</span>
<a name="l01864"></a>01864                     <span class="comment">// On le supprime de la carte</span>
<a name="l01865"></a>01865                     <span class="comment">// On force tout les events à ce mettre dans la file général</span>
<a name="l01866"></a>01866                     <span class="comment">// On active toutes les bombes</span>
<a name="l01867"></a>01867                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ad6c7196687883d064c8937d8b0b742b3" title="Met fin au temps d&amp;#39;attente de tous les event et ajoute le signal kill, qui signifit, qu&amp;#39;il faut supprimer l&amp;#39;armement.">kill</a>();
<a name="l01868"></a>01868                 }<span class="keywordflow">else</span>{
<a name="l01869"></a>01869                     <span class="comment">// Il reste une vie au perso</span>
<a name="l01870"></a>01870                     <span class="comment">// On supprime une vie</span>
<a name="l01871"></a>01871                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a09ddd6bcfc30cc20ee55f41ee1885136" title="Décrémente quantite_utilisable.">decQuantiteUtilisable</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>);
<a name="l01872"></a>01872                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#aab77df64a0e6931d90af3f500721e5cd" title="Décrémente quantite_MAX_en_stock.">decQuantiteMAX_en_stock</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>);
<a name="l01873"></a>01873                     <a class="code" href="classpartie.html#a54c3b6294fadf3be0949fa19527f5370" title="Place un perso a sa position d&amp;#39;initial Si la case initial, contient :un bonus, =&amp;gt; ramasse le bonusdes flammes -&amp;gt; nétoyage de la case puis on place le perso.">placer_perso_position_initial</a>(idJoueur);
<a name="l01874"></a>01874                 }
<a name="l01875"></a>01875             }
<a name="l01876"></a>01876             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(x, y);
<a name="l01877"></a>01877             <span class="keywordflow">return</span> 1;
<a name="l01878"></a>01878         }
<a name="l01879"></a>01879         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba278e9245c0e1cfb455511d27114dc830">map::bombe_poser_AVEC_UN_joueur</a>: {<span class="comment">// Le pauvre joueur qui est au millieu du chemin de la flamme -&gt; dead</span>
<a name="l01880"></a>01880             idJoueur = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;at(0)-1;
<a name="l01881"></a>01881 
<a name="l01882"></a>01882             <span class="comment">// On fait explosé la bombe</span>
<a name="l01883"></a>01883             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].armements() )
<a name="l01884"></a>01884                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ac503bb19af6f4486c412d011e20bd97e" title="Met fin au temps d&amp;#39;attente de tout les event.">forceTimeOut</a>(x, y);
<a name="l01885"></a>01885 
<a name="l01886"></a>01886             <span class="comment">// On tue le player</span>
<a name="l01887"></a>01887             idJoueur = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;at(1)-1;
<a name="l01888"></a>01888             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].armements()-&gt;quantiteUtilisable(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>) == 0 ){
<a name="l01889"></a>01889                 <span class="comment">// Le perso n&#39;a plus de vie</span>
<a name="l01890"></a>01890                 <span class="comment">// On le supprime de la carte</span>
<a name="l01891"></a>01891                 <span class="comment">// On force tout les events à ce mettre dans la file général</span>
<a name="l01892"></a>01892                 <span class="comment">// On active toutes les bombes</span>
<a name="l01893"></a>01893                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ad6c7196687883d064c8937d8b0b742b3" title="Met fin au temps d&amp;#39;attente de tous les event et ajoute le signal kill, qui signifit, qu&amp;#39;il faut supprimer l&amp;#39;armement.">kill</a>();
<a name="l01894"></a>01894 
<a name="l01895"></a>01895             }<span class="keywordflow">else</span>{
<a name="l01896"></a>01896                 <span class="comment">// Il reste une vie au perso</span>
<a name="l01897"></a>01897                 <span class="comment">// On supprime une vie</span>
<a name="l01898"></a>01898                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a09ddd6bcfc30cc20ee55f41ee1885136" title="Décrémente quantite_utilisable.">decQuantiteUtilisable</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>);
<a name="l01899"></a>01899                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#aab77df64a0e6931d90af3f500721e5cd" title="Décrémente quantite_MAX_en_stock.">decQuantiteMAX_en_stock</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>);
<a name="l01900"></a>01900                 <a class="code" href="classpartie.html#a54c3b6294fadf3be0949fa19527f5370" title="Place un perso a sa position d&amp;#39;initial Si la case initial, contient :un bonus, =&amp;gt; ramasse le bonusdes flammes -&amp;gt; nétoyage de la case puis on place le perso.">placer_perso_position_initial</a>(idJoueur);
<a name="l01901"></a>01901             }
<a name="l01902"></a>01902             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(x, y, idJoueur+1, 0);
<a name="l01903"></a>01903 
<a name="l01904"></a>01904             <span class="comment">// On supprime la bombe (anti-bug)</span>
<a name="l01905"></a>01905             <span class="comment">/*</span>
<a name="l01906"></a>01906 <span class="comment">            if( !c_joueurs[idJoueur].armements() )</span>
<a name="l01907"></a>01907 <span class="comment">                c_map-&gt;rmInfoJoueur(x, y, idJoueur+1, 1);</span>
<a name="l01908"></a>01908 <span class="comment">            */</span>
<a name="l01909"></a>01909 
<a name="l01910"></a>01910 
<a name="l01911"></a>01911             <span class="keywordflow">return</span> 0;
<a name="l01912"></a>01912         }
<a name="l01913"></a>01913         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba7eeb793973ee8e2ce702d82fbcd9d759">map::bombe_poser_AVEC_plusieurs_joueurs</a>: {<span class="comment">// Les pauvres joueurs qui sont au millieu du chemin de la flamme -&gt; dead</span>
<a name="l01914"></a>01914                 idJoueur = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;at(0)-1;
<a name="l01915"></a>01915 
<a name="l01916"></a>01916                 <span class="comment">// On fait explosé la bombe</span>
<a name="l01917"></a>01917                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].armements() )
<a name="l01918"></a>01918                     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ac503bb19af6f4486c412d011e20bd97e" title="Met fin au temps d&amp;#39;attente de tout les event.">forceTimeOut</a>(x, y);
<a name="l01919"></a>01919 
<a name="l01920"></a>01920                 <span class="comment">// On tue les players</span>
<a name="l01921"></a>01921                 <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> h=1; h&lt;<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;size(); h++ ){
<a name="l01922"></a>01922                     idJoueur = <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;at(h)-1;
<a name="l01923"></a>01923                     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].armements()-&gt;quantiteUtilisable(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>) == 0 ){
<a name="l01924"></a>01924                         <span class="comment">// Le perso n&#39;a plus de vie</span>
<a name="l01925"></a>01925                         <span class="comment">// On le supprime de la carte</span>
<a name="l01926"></a>01926                         <span class="comment">// On force tout les events à ce mettre dans la file général</span>
<a name="l01927"></a>01927                         <span class="comment">// On active toutes les bombes</span>
<a name="l01928"></a>01928                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ad6c7196687883d064c8937d8b0b742b3" title="Met fin au temps d&amp;#39;attente de tous les event et ajoute le signal kill, qui signifit, qu&amp;#39;il faut supprimer l&amp;#39;armement.">kill</a>();
<a name="l01929"></a>01929                     }<span class="keywordflow">else</span>{
<a name="l01930"></a>01930                         <span class="comment">// Il reste une vie au perso</span>
<a name="l01931"></a>01931                         <span class="comment">// On supprime une vie</span>
<a name="l01932"></a>01932                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a09ddd6bcfc30cc20ee55f41ee1885136" title="Décrémente quantite_utilisable.">decQuantiteUtilisable</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>);
<a name="l01933"></a>01933                         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#aab77df64a0e6931d90af3f500721e5cd" title="Décrémente quantite_MAX_en_stock.">decQuantiteMAX_en_stock</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>);
<a name="l01934"></a>01934                         <a class="code" href="classpartie.html#a54c3b6294fadf3be0949fa19527f5370" title="Place un perso a sa position d&amp;#39;initial Si la case initial, contient :un bonus, =&amp;gt; ramasse le bonusdes flammes -&amp;gt; nétoyage de la case puis on place le perso.">placer_perso_position_initial</a>(idJoueur);
<a name="l01935"></a>01935                     }
<a name="l01936"></a>01936                     <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(x, y, idJoueur+1, 0);
<a name="l01937"></a>01937                     h--;
<a name="l01938"></a>01938                 }
<a name="l01939"></a>01939 
<a name="l01940"></a>01940                 <span class="comment">// On supprime la bombe (anti-bug)</span>
<a name="l01941"></a>01941                 <span class="comment">/*</span>
<a name="l01942"></a>01942 <span class="comment">                if( !c_joueurs[idJoueur].armements() )</span>
<a name="l01943"></a>01943 <span class="comment">                    c_map-&gt;rmInfoJoueur(x, y, idJoueur+1, 1);</span>
<a name="l01944"></a>01944 <span class="comment">                */</span>
<a name="l01945"></a>01945             <span class="keywordflow">return</span> 0;
<a name="l01946"></a>01946         }
<a name="l01947"></a>01947         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba00a358d27f9818438d9bd9b8e882fb2d">map::bombe_poser</a>: {
<a name="l01948"></a>01948             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur )
<a name="l01949"></a>01949                 stdErrorE(<span class="stringliteral">&quot;Problème de pointeur vide ! c_map-&gt;getBlock(%u, %u)-&gt;joueur = 0&quot;</span>, x, y);
<a name="l01950"></a>01950             <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;size() )
<a name="l01951"></a>01951                 stdErrorE(<span class="stringliteral">&quot;Vector vide à x=%u, y=%u&quot;</span>, x, y);
<a name="l01952"></a>01952 
<a name="l01953"></a>01953             <span class="comment">// On fait explosé la bombe</span>
<a name="l01954"></a>01954             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;at(0)-1].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>() )
<a name="l01955"></a>01955                 <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;at(0)-1].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#ac503bb19af6f4486c412d011e20bd97e" title="Met fin au temps d&amp;#39;attente de tout les event.">forceTimeOut</a>(x, y);
<a name="l01956"></a>01956 
<a name="l01957"></a>01957             <span class="keywordflow">break</span>;
<a name="l01958"></a>01958             <span class="keywordflow">return</span> 0;<span class="comment">//&lt;- Mettre le return pour empêcher l&#39;effet super déflagration</span>
<a name="l01959"></a>01959         }
<a name="l01960"></a>01960         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bac6281d911da21f4bb566114037266055">map::Mur_destructible</a>: {
<a name="l01961"></a>01961             <span class="comment">//c_map-&gt;ajouterInfoJoueur(x, y, 0, 1);// On dit au block -&gt; Now tu as été détruit et tu est dans une liste</span>
<a name="l01962"></a>01962             <span class="comment">// Ajout du block à la liste des blocks qui ont été détruit</span>
<a name="l01963"></a>01963             e-&gt;<a class="code" href="structpartie_1_1s___event_bombe.html#ab6257418de0a5cc8afd637447732c8f0" title="Contient la liste des block qui ont été détruit =&amp;gt; Bonus a la clef ^^.">listBlockDetruit</a>.push_back( <a class="code" href="coordonnees_8h.html#a6672966a8002c5f5e0a711f7029b0e7d" title="Permet de créer facillement une stucture s_Coordonnees initialisée.">coordonneeConvert</a>(x, y) );
<a name="l01964"></a>01964             <span class="keywordflow">return</span> 0;
<a name="l01965"></a>01965         }
<a name="l01966"></a>01966         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba1bae257451fe92ef4fafd02fed56a850">map::Mur_INdestructible</a>: {
<a name="l01967"></a>01967             <span class="keywordflow">return</span> -1;
<a name="l01968"></a>01968         }
<a name="l01969"></a>01969         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469bab794750be41b582091eb2b4c480581e4">map::flamme_pointe_haut</a>:
<a name="l01970"></a>01970         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba09c901a81e700c77bcd7886584f1c443">map::flamme_pointe_bas</a>:
<a name="l01971"></a>01971         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba62944c1454be834def9f3dd83c71bfe1">map::flamme_pointe_droite</a>:
<a name="l01972"></a>01972         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba08c81a1be9eb74cd270ee9aba56122a7">map::flamme_pointe_gauche</a>:{
<a name="l01973"></a>01973             <span class="keywordflow">break</span>;
<a name="l01974"></a>01974         }
<a name="l01975"></a>01975         <span class="keywordflow">case</span> <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469ba5bb1e9e4730d4ba08f3dab2921bfce00">map::bonus</a>: {
<a name="l01976"></a>01976             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a69992d77d390166473f758436777a415" title="Supprime les info du joueur du block (X, Y).">rmInfoJoueur</a>(x, y);
<a name="l01977"></a>01977             <span class="keywordflow">break</span>;
<a name="l01978"></a>01978         }
<a name="l01979"></a>01979         <span class="keywordflow">default</span>: {<span class="comment">// On eject les autres cas</span>
<a name="l01980"></a>01980             <span class="keywordflow">break</span>;
<a name="l01981"></a>01981         }
<a name="l01982"></a>01982     }
<a name="l01983"></a>01983 
<a name="l01984"></a>01984     <span class="keywordflow">return</span> 1;
<a name="l01985"></a>01985 }
<a name="l01986"></a>01986 
<a name="l01987"></a>01987 
<a name="l01988"></a>01988 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l01989"></a>01989 <span class="comment">* @fn const char* partie::packIt( uint32_t X, uint32_t Y, map::t_type type )</span>
<a name="l01990"></a>01990 <span class="comment">* @brief Empaquette les variables X, Y, type pour les envoyer sur le réseau</span>
<a name="l01991"></a>01991 <span class="comment">* @return Les variables formatées dans une chaine de caractère</span>
<a name="l01992"></a>01992 <span class="comment">*/</span>
<a name="l01993"></a><a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd">01993</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">partie::packIt</a>( uint32_t X, uint32_t Y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469b" title="Les types de d&amp;#39;objet sur la map.">map::t_type</a> type )
<a name="l01994"></a>01994 {
<a name="l01995"></a>01995     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> PACK_size = snprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>, <span class="stringliteral">&quot;1:%u,%u,%u²&quot;</span>, X, Y, type);
<a name="l01996"></a>01996     <span class="keywordflow">if</span>( PACK_size &gt;= <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a> )
<a name="l01997"></a>01997         stdError(<span class="stringliteral">&quot;ATTENTION ! Perte de donnees ! %d donnees lues et %d donnees ecrites Maximum ( Ne pas oublier dans les calcules le \\0 ! )&quot;</span>, PACK_size, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l01998"></a>01998 
<a name="l01999"></a>01999     <span class="keywordflow">return</span> <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>;
<a name="l02000"></a>02000 }
<a name="l02001"></a>02001 
<a name="l02002"></a>02002 
<a name="l02003"></a>02003 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l02004"></a>02004 <span class="comment">* @fn const char* partie::packIt( std::vector&lt;unsigned char&gt;* list )</span>
<a name="l02005"></a>02005 <span class="comment">* @brief Empaquette tout ce que contient le tableau : map info joueur</span>
<a name="l02006"></a>02006 <span class="comment">* @return Les variables formatées dans une chaine de caractère</span>
<a name="l02007"></a>02007 <span class="comment">*/</span>
<a name="l02008"></a><a class="code" href="classpartie.html#a9f5161cd48b8bcee4ec19459c5edef31">02008</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">partie::packIt</a>( std::vector&lt;unsigned char&gt;* list )
<a name="l02009"></a>02009 {
<a name="l02010"></a>02010     <span class="comment">// On vide le buffer</span>
<a name="l02011"></a>02011     memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l02012"></a>02012 
<a name="l02013"></a>02013     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> p=2;
<a name="l02014"></a>02014 
<a name="l02015"></a>02015     <span class="comment">// Entête</span>
<a name="l02016"></a>02016     <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] = <span class="charliteral">&#39;2&#39;</span>;
<a name="l02017"></a>02017     <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[1] = <span class="charliteral">&#39;:&#39;</span>;
<a name="l02018"></a>02018 
<a name="l02019"></a>02019     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;list-&gt;size(); i++ ){
<a name="l02020"></a>02020         <span class="keywordflow">if</span>( p &gt;= <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a> )
<a name="l02021"></a>02021             stdErrorE(<span class="stringliteral">&quot;Dépassement de capacité !&quot;</span>);
<a name="l02022"></a>02022 
<a name="l02023"></a>02023         <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[p] = list-&gt;at(i)+<span class="charliteral">&#39;0&#39;</span>;
<a name="l02024"></a>02024         p++;
<a name="l02025"></a>02025         <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[p] = <span class="charliteral">&#39; &#39;</span>;
<a name="l02026"></a>02026         p++;
<a name="l02027"></a>02027     }
<a name="l02028"></a>02028     <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[p-1] = <span class="stringliteral">&#39;²&#39;</span>;
<a name="l02029"></a>02029     <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[p] = 0;
<a name="l02030"></a>02030 
<a name="l02031"></a>02031     <span class="keywordflow">return</span> <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>;
<a name="l02032"></a>02032 }
<a name="l02033"></a>02033 
<a name="l02034"></a>02034 
<a name="l02035"></a>02035 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l02036"></a>02036 <span class="comment">* @fn const char* partie::packIt( clavier::t_touche t )</span>
<a name="l02037"></a>02037 <span class="comment">* @brief Empaquette la touche</span>
<a name="l02038"></a>02038 <span class="comment">* @return La variable formaté dans une chaine de caractère + un indicateur de contenue</span>
<a name="l02039"></a>02039 <span class="comment">*/</span>
<a name="l02040"></a><a class="code" href="classpartie.html#a25e74bc043649accce777de4b4d3a41d">02040</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">partie::packIt</a>( <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165" title="Les actions possibles avec les touches.">clavier::t_touche</a> t )
<a name="l02041"></a>02041 {
<a name="l02042"></a>02042     <span class="keywordflow">if</span>( 0 &gt; t || t &gt; 9 )
<a name="l02043"></a>02043         stdError(<span class="stringliteral">&quot;Erreur lors du packing du clavier ! Le nombre %d ne peut etre pack !&quot;</span>, t);
<a name="l02044"></a>02044 
<a name="l02045"></a>02045     strcpy(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;3:0²&quot;</span>);<span class="comment">// Entête</span>
<a name="l02046"></a>02046     <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[2] += (int)t;
<a name="l02047"></a>02047 
<a name="l02048"></a>02048     <span class="keywordflow">return</span> <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>;
<a name="l02049"></a>02049 }
<a name="l02050"></a>02050 
<a name="l02051"></a>02051 
<a name="l02052"></a>02052 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l02053"></a>02053 <span class="comment">* @fn const char* partie::packIt( unsigned char joueur, bool includeWeapon )</span>
<a name="l02054"></a>02054 <span class="comment">* @brief Empaquette la touche</span>
<a name="l02055"></a>02055 <span class="comment">* @return La variable formaté dans une chaine de caractère + un indicateur de contenue</span>
<a name="l02056"></a>02056 <span class="comment">*/</span>
<a name="l02057"></a><a class="code" href="classpartie.html#a6e915a24ae49d9e88b8c17810f2d8ca4">02057</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">partie::packIt</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> joueur, <span class="keywordtype">bool</span> includeWeapon )
<a name="l02058"></a>02058 {
<a name="l02059"></a>02059     <span class="comment">// Taille max 43 caractères (au pire des cas) Or PACK_bufferSize == 47</span>
<a name="l02060"></a>02060     <span class="keywordflow">if</span>( includeWeapon ){
<a name="l02061"></a>02061         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements() ){
<a name="l02062"></a>02062             <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> PACK_size = snprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>, <span class="stringliteral">&quot;7:%d,%d,%d,%d,%d,%d,%d,%s²&quot;</span>
<a name="l02063"></a>02063                     ,joueur
<a name="l02064"></a>02064                     ,<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].orientation()
<a name="l02065"></a>02065                     ,<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements()-&gt;quantiteMAX(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa5377d867e4dcd5d8e6656217d02fdc9f">bonus::bombe</a>)
<a name="l02066"></a>02066                     ,<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements()-&gt;quantiteMAX(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa3758eac4c25825d7f7cb8f5ec4bc610e">bonus::puissance_flamme</a>)
<a name="l02067"></a>02067                     ,<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements()-&gt;quantiteMAX(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efaf580f32a0c46beb866416ad197e19757">bonus::declancheur</a>)
<a name="l02068"></a>02068                     ,<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements()-&gt;quantiteMAX(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efae2dd393722ba461c826db4bc25f044eb">bonus::pousse_bombe</a>)
<a name="l02069"></a>02069                     ,<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].armements()-&gt;quantiteMAX(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>)
<a name="l02070"></a>02070                     ,<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].nom()-&gt;c_str()
<a name="l02071"></a>02071             );
<a name="l02072"></a>02072             <span class="keywordflow">if</span>( PACK_size &gt;= <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a> )
<a name="l02073"></a>02073                 stdError(<span class="stringliteral">&quot;ATTENTION ! Perte de donnees ! %d donnees lues et %d donnees ecrites Maximum ( Ne pas oublier dans les calcules le \\0 ! )&quot;</span>, PACK_size, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l02074"></a>02074         }<span class="keywordflow">else</span>{
<a name="l02075"></a>02075             sprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;7:%d,%d,0,0,0,0,0,%s²&quot;</span>, joueur, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].orientation(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].nom()-&gt;c_str());
<a name="l02076"></a>02076         }
<a name="l02077"></a>02077     }<span class="keywordflow">else</span>{
<a name="l02078"></a>02078         sprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;6:%d,%d,%s²&quot;</span>, joueur, <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].orientation(), <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[joueur].nom()-&gt;c_str());
<a name="l02079"></a>02079     }
<a name="l02080"></a>02080 
<a name="l02081"></a>02081     <span class="keywordflow">return</span> <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>;
<a name="l02082"></a>02082 }
<a name="l02083"></a>02083 
<a name="l02084"></a>02084 
<a name="l02085"></a>02085 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l02086"></a>02086 <span class="comment">* @fn void partie::unPackIt( uint32_t* X, uint32_t* Y, map::t_type* type )</span>
<a name="l02087"></a>02087 <span class="comment">* @brief Désempaquette le buffer et met les données dans les variables X, Y, type</span>
<a name="l02088"></a>02088 <span class="comment">*/</span>
<a name="l02089"></a><a class="code" href="classpartie.html#a00fa62001b4423d9f261ef94d493f209">02089</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">partie::unPackIt</a>( uint32_t* X, uint32_t* Y, <a class="code" href="classmap.html#ae2a076bf152add89e510bca3428f469b" title="Les types de d&amp;#39;objet sur la map.">map::t_type</a>* type )
<a name="l02090"></a>02090 {
<a name="l02091"></a>02091     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=2;
<a name="l02092"></a>02092     <span class="keywordtype">bool</span> firstLap = 1;
<a name="l02093"></a>02093 
<a name="l02094"></a>02094     <span class="comment">//stdError(&quot;UnPack this: %s&quot;, c_buffer+2);</span>
<a name="l02095"></a>02095 
<a name="l02096"></a>02096     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] != <span class="charliteral">&#39;1&#39;</span> || <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] != <span class="stringliteral">&#39;²&#39;</span> ){
<a name="l02097"></a>02097         stdError(<span class="stringliteral">&quot;Erreur ! Mauvais packet ! {%s}&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l02098"></a>02098         *X = 0;
<a name="l02099"></a>02099         *Y = 0;
<a name="l02100"></a>02100         *type = map::vide;
<a name="l02101"></a>02101         return ;
<a name="l02102"></a>02102     }
<a name="l02103"></a>02103     <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] = 0;<span class="comment">// On vire la fin de chaine ²</span>
<a name="l02104"></a>02104 
<a name="l02105"></a>02105     *X = 0;
<a name="l02106"></a>02106     firstLap = 1;
<a name="l02107"></a>02107     <span class="keywordflow">for</span>( ; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] != <span class="charliteral">&#39;,&#39;</span> ; i++ )
<a name="l02108"></a>02108     {
<a name="l02109"></a>02109         <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){<span class="comment">// Pour contrer le bug SOH</span>
<a name="l02110"></a>02110             <span class="keywordflow">if</span>( firstLap ){
<a name="l02111"></a>02111                 firstLap = 0;
<a name="l02112"></a>02112             }<span class="keywordflow">else</span>{
<a name="l02113"></a>02113                 *X *= 10;
<a name="l02114"></a>02114             }
<a name="l02115"></a>02115             *X += <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>;
<a name="l02116"></a>02116         }
<a name="l02117"></a>02117     }
<a name="l02118"></a>02118     i++;<span class="comment">// Pour virer la ,</span>
<a name="l02119"></a>02119 
<a name="l02120"></a>02120     *Y = 0;
<a name="l02121"></a>02121     firstLap = 1;
<a name="l02122"></a>02122     <span class="keywordflow">for</span>( ; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] != <span class="charliteral">&#39;,&#39;</span>; i++ )
<a name="l02123"></a>02123     {
<a name="l02124"></a>02124         <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){<span class="comment">// Pour contrer le bug SOH</span>
<a name="l02125"></a>02125             <span class="keywordflow">if</span>( firstLap ){
<a name="l02126"></a>02126                 firstLap = 0;
<a name="l02127"></a>02127             }<span class="keywordflow">else</span>{
<a name="l02128"></a>02128                 *Y *= 10;
<a name="l02129"></a>02129             }
<a name="l02130"></a>02130             *Y += <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>;
<a name="l02131"></a>02131         }
<a name="l02132"></a>02132     }
<a name="l02133"></a>02133     i++;<span class="comment">// Pour virer la ,</span>
<a name="l02134"></a>02134 
<a name="l02135"></a>02135     *type = (map::t_type)0;
<a name="l02136"></a>02136     firstLap = 1;
<a name="l02137"></a>02137     <span class="keywordflow">for</span>( ; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]; i++ )
<a name="l02138"></a>02138     {
<a name="l02139"></a>02139         <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){<span class="comment">// Pour contrer le bug SOH</span>
<a name="l02140"></a>02140             <span class="keywordflow">if</span>( firstLap ){
<a name="l02141"></a>02141                 firstLap = 0;
<a name="l02142"></a>02142             }<span class="keywordflow">else</span>{
<a name="l02143"></a>02143                 *type = (map::t_type)(*type*10);
<a name="l02144"></a>02144             }
<a name="l02145"></a>02145             *type = (map::t_type)(*type+(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>));
<a name="l02146"></a>02146         }
<a name="l02147"></a>02147     }
<a name="l02148"></a>02148 
<a name="l02149"></a>02149     <span class="comment">//sscanf(c_buffer, &quot;%u,%u,%u&quot;, X, Y, type );</span>
<a name="l02150"></a>02150     <span class="comment">//stdError(&quot;UnPacked: %u,%u,%u&quot;, *X, *Y, *type);</span>
<a name="l02151"></a>02151 }
<a name="l02152"></a>02152 
<a name="l02153"></a>02153 
<a name="l02154"></a>02154 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l02155"></a>02155 <span class="comment">* @fn void partie::unPackIt( uint32_t X, uint32_t Y )</span>
<a name="l02156"></a>02156 <span class="comment">* @brief Désempaquette le buffer et met les données dans le tableau</span>
<a name="l02157"></a>02157 <span class="comment">*/</span>
<a name="l02158"></a><a class="code" href="classpartie.html#a690624a8847be8257bd1d89e23018614">02158</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">partie::unPackIt</a>( uint32_t X, uint32_t Y )
<a name="l02159"></a>02159 {
<a name="l02160"></a>02160     <span class="comment">//stdError(&quot;UnPack this: %s at x=%u, y=%u&quot;, c_buffer+2, X, Y);</span>
<a name="l02161"></a>02161 
<a name="l02162"></a>02162     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] != <span class="charliteral">&#39;2&#39;</span> || <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] != <span class="stringliteral">&#39;²&#39;</span> ){
<a name="l02163"></a>02163         stdError(<span class="stringliteral">&quot;Erreur ! Mauvais packet ! {%s}&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l02164"></a>02164         return ;
<a name="l02165"></a>02165     }
<a name="l02166"></a>02166     <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] = 0;<span class="comment">// On vire la fin de chaine ²</span>
<a name="l02167"></a>02167 
<a name="l02168"></a>02168     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=2; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]; i++ ){
<a name="l02169"></a>02169         <span class="keywordflow">if</span>( i &gt;= <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a> )
<a name="l02170"></a>02170             stdErrorE(<span class="stringliteral">&quot;Dépassement de capacité !&quot;</span>);
<a name="l02171"></a>02171 
<a name="l02172"></a>02172         <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> )
<a name="l02173"></a>02173             <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#ac7e126e8c0555f9f2e9c86cc81865b9f" title="Ajoute des meta donnée ( ou info joueurs ) dans le block (X, Y).">ajouterInfoJoueur</a>(X, Y, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>);
<a name="l02174"></a>02174     }
<a name="l02175"></a>02175 }
<a name="l02176"></a>02176 
<a name="l02177"></a>02177 
<a name="l02178"></a>02178 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l02179"></a>02179 <span class="comment">* @fn void partie::unPackIt( clavier::t_touche* t )</span>
<a name="l02180"></a>02180 <span class="comment">* @brief Désempaquette le buffer et met les données dans la variable</span>
<a name="l02181"></a>02181 <span class="comment">*/</span>
<a name="l02182"></a><a class="code" href="classpartie.html#a39c12b422e149d7ebffa52e510f1bef0">02182</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">partie::unPackIt</a>( <a class="code" href="classclavier.html#a856f09c9c69488343534494c2e1ed165" title="Les actions possibles avec les touches.">clavier::t_touche</a>* t )
<a name="l02183"></a>02183 {
<a name="l02184"></a>02184     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] != <span class="charliteral">&#39;3&#39;</span> || <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] != <span class="stringliteral">&#39;²&#39;</span> ){
<a name="l02185"></a>02185         stdError(<span class="stringliteral">&quot;Erreur ! Mauvais packet ! {%s}&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l02186"></a>02186         *t = clavier::NUL;
<a name="l02187"></a>02187         return ;
<a name="l02188"></a>02188     }
<a name="l02189"></a>02189 
<a name="l02190"></a>02190     *t = (clavier::t_touche)(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[2]-<span class="charliteral">&#39;0&#39;</span>);
<a name="l02191"></a>02191 }
<a name="l02192"></a>02192 
<a name="l02193"></a>02193 
<a name="l02194"></a>02194 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l02195"></a>02195 <span class="comment">* @fn void partie::unPackIt()</span>
<a name="l02196"></a>02196 <span class="comment">* @brief Désempaquette le buffer et met les données dans le joueur correspondant</span>
<a name="l02197"></a>02197 <span class="comment">*/</span>
<a name="l02198"></a><a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c">02198</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#a1c02eb26617ee76e5bae9f75e27f600c" title="Désempaquette le buffer et met les données dans le joueur correspondant.">partie::unPackIt</a>()
<a name="l02199"></a>02199 {
<a name="l02200"></a>02200     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> idJoueur = 0;
<a name="l02201"></a>02201     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 2;
<a name="l02202"></a>02202     <span class="keywordtype">bool</span> firstLap = 1;
<a name="l02203"></a>02203     <a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5">perso::t_Orientation</a> ori = (perso::t_Orientation)0;
<a name="l02204"></a>02204     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> tmpBonusValue;
<a name="l02205"></a>02205 
<a name="l02206"></a>02206     <span class="keywordflow">if</span>( (<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] != <span class="charliteral">&#39;6&#39;</span> &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] != <span class="charliteral">&#39;7&#39;</span>) || <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] != <span class="stringliteral">&#39;²&#39;</span> ){
<a name="l02207"></a>02207         stdError(<span class="stringliteral">&quot;Packet incorrect ! {%s}&quot;</span>, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>);
<a name="l02208"></a>02208         return ;
<a name="l02209"></a>02209     }
<a name="l02210"></a>02210     <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[strlen(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>)-1] = 0;<span class="comment">// On vire la fin de chaine ²</span>
<a name="l02211"></a>02211 
<a name="l02212"></a>02212     <span class="comment">/***************************************************************************</span>
<a name="l02213"></a>02213 <span class="comment">    * On détermine l&#39;ID du joueur</span>
<a name="l02214"></a>02214 <span class="comment">    */</span>
<a name="l02215"></a>02215     idJoueur = 0;
<a name="l02216"></a>02216     firstLap = 1;
<a name="l02217"></a>02217     <span class="keywordflow">for</span>( ; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] != <span class="charliteral">&#39;,&#39;</span>; i++ )
<a name="l02218"></a>02218     {
<a name="l02219"></a>02219         <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){<span class="comment">// Pour contrer le bug SOH</span>
<a name="l02220"></a>02220             <span class="keywordflow">if</span>( firstLap ){
<a name="l02221"></a>02221                 firstLap = 0;
<a name="l02222"></a>02222             }<span class="keywordflow">else</span>{
<a name="l02223"></a>02223                 idJoueur *= 10;
<a name="l02224"></a>02224             }
<a name="l02225"></a>02225             idJoueur += <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>;
<a name="l02226"></a>02226         }
<a name="l02227"></a>02227     }
<a name="l02228"></a>02228     i++;<span class="comment">// Pour virer la,</span>
<a name="l02229"></a>02229 
<a name="l02230"></a>02230     <span class="keywordflow">if</span>( idJoueur &gt; <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a> )
<a name="l02231"></a>02231         stdErrorE(<span class="stringliteral">&quot;Erreur ! idJoueur incorrect ! idJoueur=%u, c_nb_joueurs=%u&quot;</span>, idJoueur, <a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a>);
<a name="l02232"></a>02232 
<a name="l02233"></a>02233     <a class="code" href="classpartie.html#a755a69e104dc7c643a5bb687e6281e2f">c_listPlayerRefresh</a>.push_back(idJoueur);
<a name="l02234"></a>02234 
<a name="l02235"></a>02235     <span class="comment">/***************************************************************************</span>
<a name="l02236"></a>02236 <span class="comment">    * On détermine l&#39;orientation du joueur</span>
<a name="l02237"></a>02237 <span class="comment">    */</span>
<a name="l02238"></a>02238     firstLap = 1;
<a name="l02239"></a>02239     <span class="keywordflow">for</span>( ; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] != <span class="charliteral">&#39;,&#39;</span>; i++ )
<a name="l02240"></a>02240     {
<a name="l02241"></a>02241         <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){<span class="comment">// Pour contrer le bug SOH</span>
<a name="l02242"></a>02242             <span class="keywordflow">if</span>( firstLap ){
<a name="l02243"></a>02243                 firstLap = 0;
<a name="l02244"></a>02244             }<span class="keywordflow">else</span>{
<a name="l02245"></a>02245                 ori = (perso::t_Orientation)(ori*((<a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5">perso::t_Orientation</a>)10));
<a name="l02246"></a>02246             }
<a name="l02247"></a>02247             ori = (perso::t_Orientation)(ori+(<a class="code" href="classperso.html#af25facef489bc105b9fe42132b80cba5">perso::t_Orientation</a>)(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>));
<a name="l02248"></a>02248         }
<a name="l02249"></a>02249     }
<a name="l02250"></a>02250     i++;<span class="comment">// Pour virer la,</span>
<a name="l02251"></a>02251     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#a1b34094c6f485175dfe7ddcfc58c3534" title="Modif l&amp;#39;orientation du perso.">defOrientation</a>(ori);
<a name="l02252"></a>02252 
<a name="l02253"></a>02253 
<a name="l02254"></a>02254     <span class="comment">/***************************************************************************</span>
<a name="l02255"></a>02255 <span class="comment">    * On détermine l&#39;armements du joueur</span>
<a name="l02256"></a>02256 <span class="comment">    */</span>
<a name="l02257"></a>02257     <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[0] == <span class="charliteral">&#39;7&#39;</span> ){
<a name="l02258"></a>02258         <a class="code" href="classpartie.html#afb65c2ba5d2855f340b6e6183bcfa525" title="Si connection client -&amp;gt; ID du joueur (correspond au numéro dans le tableau c_joueur).">c_uniqueJoueurID</a> = idJoueur;
<a name="l02259"></a>02259 
<a name="l02260"></a>02260         <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].armements() ){
<a name="l02261"></a>02261             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#aa19fd01c37bed0b375dcc4362be08ed1" title="Modif l&amp;#39;armement du perso.">defArmements</a>(<span class="keyword">new</span> <a class="code" href="classbonus.html" title="Gère les bonus.">bonus</a>);
<a name="l02262"></a>02262             <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#af91e74965a273a977bf3eea41dc19c13" title="Charge en mémoire les paramètres par defaut pour une partie F4A.">param_Par_Defaut</a>();
<a name="l02263"></a>02263         }
<a name="l02264"></a>02264 
<a name="l02265"></a>02265         <span class="comment">/***************************************************************************</span>
<a name="l02266"></a>02266 <span class="comment">        * On détermine l&#39;armements du joueur</span>
<a name="l02267"></a>02267 <span class="comment">        */</span>
<a name="l02268"></a>02268         <span class="comment">// Calcule le nombre de bombe</span>
<a name="l02269"></a>02269         tmpBonusValue = 0;
<a name="l02270"></a>02270         <span class="keywordflow">for</span>( ; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] != <span class="charliteral">&#39;,&#39;</span>; i++ )
<a name="l02271"></a>02271         {
<a name="l02272"></a>02272             <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){<span class="comment">// Pour contrer le bug SOH</span>
<a name="l02273"></a>02273                 <span class="keywordflow">if</span>( firstLap ){
<a name="l02274"></a>02274                     firstLap = 0;
<a name="l02275"></a>02275                 }<span class="keywordflow">else</span>{
<a name="l02276"></a>02276                     tmpBonusValue *= 10;
<a name="l02277"></a>02277                 }
<a name="l02278"></a>02278                 tmpBonusValue = tmpBonusValue+(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>);
<a name="l02279"></a>02279             }
<a name="l02280"></a>02280         }
<a name="l02281"></a>02281         i++;<span class="comment">// Pour virer la,</span>
<a name="l02282"></a>02282         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a4d41164c735c2d89f03dc4bd8b1abc1f" title="Modifie la quantité MAX en stock. (quantite_MAX_en_stock).">defQuantiteMAX</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa5377d867e4dcd5d8e6656217d02fdc9f">bonus::bombe</a>, tmpBonusValue);
<a name="l02283"></a>02283 
<a name="l02284"></a>02284         <span class="comment">// Calcule puissance flamme</span>
<a name="l02285"></a>02285         tmpBonusValue = 0;
<a name="l02286"></a>02286         <span class="keywordflow">for</span>( ; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] != <span class="charliteral">&#39;,&#39;</span>; i++ )
<a name="l02287"></a>02287         {
<a name="l02288"></a>02288             <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){<span class="comment">// Pour contrer le bug SOH</span>
<a name="l02289"></a>02289                 <span class="keywordflow">if</span>( firstLap ){
<a name="l02290"></a>02290                     firstLap = 0;
<a name="l02291"></a>02291                 }<span class="keywordflow">else</span>{
<a name="l02292"></a>02292                     tmpBonusValue *= 10;
<a name="l02293"></a>02293                 }
<a name="l02294"></a>02294                 tmpBonusValue = tmpBonusValue+(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>);
<a name="l02295"></a>02295             }
<a name="l02296"></a>02296         }
<a name="l02297"></a>02297         i++;<span class="comment">// Pour virer la,</span>
<a name="l02298"></a>02298         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a4d41164c735c2d89f03dc4bd8b1abc1f" title="Modifie la quantité MAX en stock. (quantite_MAX_en_stock).">defQuantiteMAX</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa3758eac4c25825d7f7cb8f5ec4bc610e">bonus::puissance_flamme</a>, tmpBonusValue);
<a name="l02299"></a>02299 
<a name="l02300"></a>02300         <span class="comment">// Calcule declancheur</span>
<a name="l02301"></a>02301         tmpBonusValue = 0;
<a name="l02302"></a>02302         <span class="keywordflow">for</span>( ; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] != <span class="charliteral">&#39;,&#39;</span>; i++ )
<a name="l02303"></a>02303         {
<a name="l02304"></a>02304             <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){<span class="comment">// Pour contrer le bug SOH</span>
<a name="l02305"></a>02305                 <span class="keywordflow">if</span>( firstLap ){
<a name="l02306"></a>02306                     firstLap = 0;
<a name="l02307"></a>02307                 }<span class="keywordflow">else</span>{
<a name="l02308"></a>02308                     tmpBonusValue *= 10;
<a name="l02309"></a>02309                 }
<a name="l02310"></a>02310                 tmpBonusValue = tmpBonusValue+(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>);
<a name="l02311"></a>02311             }
<a name="l02312"></a>02312         }
<a name="l02313"></a>02313         i++;<span class="comment">// Pour virer la,</span>
<a name="l02314"></a>02314         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a4d41164c735c2d89f03dc4bd8b1abc1f" title="Modifie la quantité MAX en stock. (quantite_MAX_en_stock).">defQuantiteMAX</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efaf580f32a0c46beb866416ad197e19757">bonus::declancheur</a>, tmpBonusValue);
<a name="l02315"></a>02315 
<a name="l02316"></a>02316         <span class="comment">// Calcule pousse bombe</span>
<a name="l02317"></a>02317         tmpBonusValue = 0;
<a name="l02318"></a>02318         <span class="keywordflow">for</span>( ; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] != <span class="charliteral">&#39;,&#39;</span>; i++ )
<a name="l02319"></a>02319         {
<a name="l02320"></a>02320             <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){<span class="comment">// Pour contrer le bug SOH</span>
<a name="l02321"></a>02321                 <span class="keywordflow">if</span>( firstLap ){
<a name="l02322"></a>02322                     firstLap = 0;
<a name="l02323"></a>02323                 }<span class="keywordflow">else</span>{
<a name="l02324"></a>02324                     tmpBonusValue *= 10;
<a name="l02325"></a>02325                 }
<a name="l02326"></a>02326                 tmpBonusValue = tmpBonusValue+(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>);
<a name="l02327"></a>02327             }
<a name="l02328"></a>02328         }
<a name="l02329"></a>02329         i++;<span class="comment">// Pour virer la,</span>
<a name="l02330"></a>02330         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a4d41164c735c2d89f03dc4bd8b1abc1f" title="Modifie la quantité MAX en stock. (quantite_MAX_en_stock).">defQuantiteMAX</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efae2dd393722ba461c826db4bc25f044eb">bonus::pousse_bombe</a>, tmpBonusValue);
<a name="l02331"></a>02331 
<a name="l02332"></a>02332         <span class="comment">// Calcule vie</span>
<a name="l02333"></a>02333         tmpBonusValue = 0;
<a name="l02334"></a>02334         <span class="keywordflow">for</span>( ; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] != <span class="charliteral">&#39;,&#39;</span>; i++ )
<a name="l02335"></a>02335         {
<a name="l02336"></a>02336             <span class="keywordflow">if</span>( <span class="charliteral">&#39;0&#39;</span> &lt;= <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &amp;&amp; <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i] &lt;= <span class="charliteral">&#39;9&#39;</span> ){<span class="comment">// Pour contrer le bug SOH</span>
<a name="l02337"></a>02337                 <span class="keywordflow">if</span>( firstLap ){
<a name="l02338"></a>02338                     firstLap = 0;
<a name="l02339"></a>02339                 }<span class="keywordflow">else</span>{
<a name="l02340"></a>02340                     tmpBonusValue *= 10;
<a name="l02341"></a>02341                 }
<a name="l02342"></a>02342                 tmpBonusValue = tmpBonusValue+(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>[i]-<span class="charliteral">&#39;0&#39;</span>);
<a name="l02343"></a>02343             }
<a name="l02344"></a>02344         }
<a name="l02345"></a>02345         i++;<span class="comment">// Pour virer la,</span>
<a name="l02346"></a>02346         <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#a4d41164c735c2d89f03dc4bd8b1abc1f" title="Modifie la quantité MAX en stock. (quantite_MAX_en_stock).">defQuantiteMAX</a>(<a class="code" href="classbonus.html#a0d304c6fa948d0cbc4e787d775bcb7efa1246f4ca553bef6a133a81553cbb9b41">bonus::vie</a>, tmpBonusValue);
<a name="l02347"></a>02347     }
<a name="l02348"></a>02348 
<a name="l02349"></a>02349     <span class="comment">// On def le nom du joueur</span>
<a name="l02350"></a>02350     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#a790e87487c0adb4360d690b2f2f2d05b" title="Modifie le nom du personnage.">defNom</a>(<span class="keywordtype">string</span>(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>+i));
<a name="l02351"></a>02351 }
<a name="l02352"></a>02352 
<a name="l02353"></a>02353 
<a name="l02354"></a>02354 <span class="comment">/***************************************************************************/</span><span class="comment">/*!</span>
<a name="l02355"></a>02355 <span class="comment">* @fn void partie::ajouterNouvelleConnection( SOCKET s )</span>
<a name="l02356"></a>02356 <span class="comment">* @brief Permet d&#39;ajouter un nouveau joueur à la partie</span>
<a name="l02357"></a>02357 <span class="comment">*</span>
<a name="l02358"></a>02358 <span class="comment">* @include Protocole_Socket.txt</span>
<a name="l02359"></a>02359 <span class="comment">*/</span>
<a name="l02360"></a><a class="code" href="classpartie.html#a420893a3747896875a748834c1bbdc32">02360</a> <span class="keywordtype">void</span> <a class="code" href="classpartie.html#a420893a3747896875a748834c1bbdc32" title="Permet d&amp;#39;ajouter un nouveau joueur à la partie.">partie::ajouterNouvelleConnection</a>( <a class="code" href="class___base_client_server_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s )
<a name="l02361"></a>02361 {
<a name="l02362"></a>02362     <span class="keywordtype">int</span>             l_isIntel=1,
<a name="l02363"></a>02363                     l_is32Bits=1,
<a name="l02364"></a>02364                     bufferSize = 0,
<a name="l02365"></a>02365                     version = 0;
<a name="l02366"></a>02366     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>   i,
<a name="l02367"></a>02367                     j,
<a name="l02368"></a>02368                     idJoueur = 0;
<a name="l02369"></a>02369     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nb_joueur = 0;
<a name="l02370"></a>02370 
<a name="l02371"></a>02371     <span class="comment">// On vide le buffer</span>
<a name="l02372"></a>02372     memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l02373"></a>02373     <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a3958ab35efdf8daed31591a7c5c4eacb" title="Récupère les données envoyées par un client.">readClient</a>( s, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a> );<span class="comment">// On attend les données du client</span>
<a name="l02374"></a>02374     sscanf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;%d %d %d %d&quot;</span>, &amp;version, &amp;l_is32Bits, &amp;l_isIntel, &amp;bufferSize );<span class="comment">// Utilisation d&#39;un buffer pour eviter tout problème de lecture</span>
<a name="l02375"></a>02375 
<a name="l02376"></a>02376     <span class="keywordflow">if</span>( version != <a class="code" href="config_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a7a96c5436c2b93e73f491800d240a6d9">__BOMBERMAN_VERSION__</a> || <a class="code" href="meta_prog_8inl.html#a99fb83031ce9923c84392b4e92f956b5aa6ab291ddde20dbab3a32cffd81fc8fb">Is32Bits</a> != l_is32Bits || l_isIntel != (<span class="keywordtype">int</span>)<a class="code" href="classbase_client_server.html#a09c15f21a6970e5a5f9103802291c502" title="Permet de savoir si l&amp;#39;on est sur une machine Intel, une machine qui lit les octects en Little End...">baseClientServer::isLittleEndian</a>() || bufferSize != <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a> ){
<a name="l02377"></a>02377         stdError(<span class="stringliteral">&quot;Vous avez refusé une connection ! La confiuration du client n&#39;est pas compactible avec le serveur ! Client:{Version=%d, Is32Bits=%d, IsIntel=%d, bufferSize=%d}, Le serveur:{Version=%d, Is32Bits=%d, IsIntel=%d, bufferSize=%d}&quot;</span>, version, l_is32Bits, l_isIntel, bufferSize, <a class="code" href="config_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a7a96c5436c2b93e73f491800d240a6d9">__BOMBERMAN_VERSION__</a>, <a class="code" href="meta_prog_8inl.html#a99fb83031ce9923c84392b4e92f956b5aa6ab291ddde20dbab3a32cffd81fc8fb">Is32Bits</a>, (<span class="keywordtype">int</span>)<a class="code" href="classbase_client_server.html#a09c15f21a6970e5a5f9103802291c502" title="Permet de savoir si l&amp;#39;on est sur une machine Intel, une machine qui lit les octects en Little End...">baseClientServer::isLittleEndian</a>(), <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l02378"></a>02378         <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a5763b1fe8cfe5a31e5217e0a7584d839" title="Supprime le client qui a le socket s.">rmClient</a>( s );<span class="comment">// Connection refusé</span>
<a name="l02379"></a>02379         return ;
<a name="l02380"></a>02380     }
<a name="l02381"></a>02381 
<a name="l02382"></a>02382     <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( s, <span class="stringliteral">&quot;1&quot;</span>, 2);<span class="comment">// Connection accèpté</span>
<a name="l02383"></a>02383 
<a name="l02384"></a>02384     <span class="comment">// On vide le buffer</span>
<a name="l02385"></a>02385     memset(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, 0, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l02386"></a>02386     <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a3958ab35efdf8daed31591a7c5c4eacb" title="Récupère les données envoyées par un client.">readClient</a>( s, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a> );<span class="comment">// On attend le nom du client</span>
<a name="l02387"></a>02387 
<a name="l02388"></a>02388     <span class="comment">// On cherche un SLOT pour notre joueur</span>
<a name="l02389"></a>02389     <span class="comment">// Et on vérifit si le nom n&#39;est pas dans la liste</span>
<a name="l02390"></a>02390     <span class="keywordtype">bool</span> slotFinded = <span class="keyword">false</span>;
<a name="l02391"></a>02391     <span class="keywordflow">for</span>( i=0; i&lt;<a class="code" href="classpartie.html#a70f5ba5f9faea6fcbcb7aa3d2257450b" title="Le nombre de joueur dans la partie.">c_nb_joueurs</a>; i++ ){
<a name="l02392"></a>02392         <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal() ){
<a name="l02393"></a>02393             <span class="keywordflow">if</span>( *<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].nom() == <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a> ){<span class="comment">// Nom déjà utilisé</span>
<a name="l02394"></a>02394                 <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classserver.html#a5763b1fe8cfe5a31e5217e0a7584d839" title="Supprime le client qui a le socket s.">rmClient</a>( s );<span class="comment">// Nom refusé =&gt; Déco</span>
<a name="l02395"></a>02395                 return ;
<a name="l02396"></a>02396             }
<a name="l02397"></a>02397             nb_joueur++;
<a name="l02398"></a>02398         }<span class="keywordflow">else</span>{<span class="comment">// isLocal() == false</span>
<a name="l02399"></a>02399             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket() == INVALID_SOCKET &amp;&amp; !slotFinded ){<span class="comment">// Note, on est obligé de trouver un slot libre, sinon le server n&#39;aurait pas accèpté la connection</span>
<a name="l02400"></a>02400                 idJoueur = i;
<a name="l02401"></a>02401                 slotFinded = 1;
<a name="l02402"></a>02402                 nb_joueur++;
<a name="l02403"></a>02403             }
<a name="l02404"></a>02404             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket() != INVALID_SOCKET )
<a name="l02405"></a>02405                 nb_joueur++;
<a name="l02406"></a>02406         }
<a name="l02407"></a>02407     }
<a name="l02408"></a>02408 
<a name="l02409"></a>02409     <span class="comment">// Création du joueur</span>
<a name="l02410"></a>02410     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#ad5afe81f43724128d79b57acfabcda3a" title="Permet de definir le socket utilisé par le perso.">defSocket</a>( s );
<a name="l02411"></a>02411     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#a790e87487c0adb4360d690b2f2f2d05b" title="Modifie le nom du personnage.">defNom</a>( <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a> );
<a name="l02412"></a>02412     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#aa19fd01c37bed0b375dcc4362be08ed1" title="Modif l&amp;#39;armement du perso.">defArmements</a>( <span class="keyword">new</span> <a class="code" href="classbonus.html" title="Gère les bonus.">bonus</a>() );
<a name="l02413"></a>02413     <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[idJoueur].<a class="code" href="classperso.html#add0aebd55226ce05235400c09a529441" title="Renvoie les armes et bonus du personnage.">armements</a>()-&gt;<a class="code" href="classbonus.html#af91e74965a273a977bf3eea41dc19c13" title="Charge en mémoire les paramètres par defaut pour une partie F4A.">param_Par_Defaut</a>();
<a name="l02414"></a>02414     <a class="code" href="classpartie.html#a54c3b6294fadf3be0949fa19527f5370" title="Place un perso a sa position d&amp;#39;initial Si la case initial, contient :un bonus, =&amp;gt; ramasse le bonusdes flammes -&amp;gt; nétoyage de la case puis on place le perso.">placer_perso_position_initial</a>( idJoueur );
<a name="l02415"></a>02415 
<a name="l02416"></a>02416 
<a name="l02417"></a>02417     <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( s, <span class="stringliteral">&quot;1&quot;</span>, 2);<span class="comment">// Nom accèpté</span>
<a name="l02418"></a>02418 
<a name="l02419"></a>02419 
<a name="l02420"></a>02420     <span class="comment">// Envoie des dim de la map</span>
<a name="l02421"></a>02421     <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>(s, <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>(<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abc682d96c6d194b75d2e8a6430b5b076" title="Renvoie la taille X de la map.">X</a>(), <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abcb25776d119cd3f2864c67ec05a6a4a" title="Renvoie la taille Y de la map.">Y</a>(), map::inconnu), <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l02422"></a>02422 
<a name="l02423"></a>02423     <span class="comment">// Envoie de la map</span>
<a name="l02424"></a>02424     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x=0, y=0; y&lt;<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abcb25776d119cd3f2864c67ec05a6a4a" title="Renvoie la taille Y de la map.">Y</a>(); y++ )
<a name="l02425"></a>02425     {
<a name="l02426"></a>02426         <span class="keywordflow">for</span>( x=0; x&lt;<a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#abc682d96c6d194b75d2e8a6430b5b076" title="Renvoie la taille X de la map.">X</a>(); x++ )
<a name="l02427"></a>02427         {
<a name="l02428"></a>02428             <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>(s, <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>(x, y, <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;element), <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l02429"></a>02429             <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur &amp;&amp; <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur-&gt;size() )
<a name="l02430"></a>02430                 <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>(s, <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>( <a class="code" href="classpartie.html#a2e8c085d8c52b47b06d485778b6493e1" title="SIMPLE POINTEUR !">c_map</a>-&gt;<a class="code" href="classmap.html#a5ab949cacaad5148299aa70f55bb0c93" title="Retourn le block qui est à la position X, Y.">getBlock</a>(x, y)-&gt;joueur ), <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l02431"></a>02431         }
<a name="l02432"></a>02432     }
<a name="l02433"></a>02433 
<a name="l02434"></a>02434 
<a name="l02435"></a>02435     <span class="comment">// Envoie des info joueurs à tout les players !</span>
<a name="l02436"></a>02436     <span class="keywordflow">for</span>( i=0; i&lt;c_nb_joueurs; i++ )
<a name="l02437"></a>02437     {
<a name="l02438"></a>02438         <span class="keywordflow">if</span>( !<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].isLocal() &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].<a class="code" href="classperso.html#a33ea05f68d9ddf2cf242b9b19c8b1ceb" title="Renvoie le socket utilisé (Par defaut: INVALID_SOCKET).">socket</a>() != INVALID_SOCKET ){
<a name="l02439"></a>02439             <span class="comment">// Envoie du nouveau nombre de joueur</span>
<a name="l02440"></a>02440             sprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;5:%d²&quot;</span>, nb_joueur);
<a name="l02441"></a>02441             <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);
<a name="l02442"></a>02442 
<a name="l02443"></a>02443             <span class="comment">// Envoie des données du joueur</span>
<a name="l02444"></a>02444             <span class="keywordflow">for</span>( j=0; j&lt;c_nb_joueurs; j++ ){
<a name="l02445"></a>02445                 <span class="keywordflow">if</span>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].isLocal() || (!<a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].isLocal() &amp;&amp; <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[j].socket() != INVALID_SOCKET) ){
<a name="l02446"></a>02446                     <span class="keywordflow">if</span>( i == j ){
<a name="l02447"></a>02447                         <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>( j, <span class="keyword">true</span> );
<a name="l02448"></a>02448                     }<span class="keywordflow">else</span>{
<a name="l02449"></a>02449                         <a class="code" href="classpartie.html#addde04ace47d77c95a6426d5a8b169fd" title="Empaquette les variables X, Y, type pour les envoyer sur le réseau.">packIt</a>( j, <span class="keyword">false</span> );
<a name="l02450"></a>02450                     }
<a name="l02451"></a>02451                     <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Fin de transmition de map</span>
<a name="l02452"></a>02452                 }
<a name="l02453"></a>02453             }
<a name="l02454"></a>02454 
<a name="l02455"></a>02455             <span class="comment">// Envoie du timer</span>
<a name="l02456"></a>02456             sprintf(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;9:%ld²&quot;</span>, <a class="code" href="classpartie.html#aaad2effe7ce5ae06ea184c9499ba4eb6">c_timeOut</a>-clock());
<a name="l02457"></a>02457             <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( <a class="code" href="classpartie.html#a2c15782977ad816f0c0a9e2459f11f06" title="Tableau de joueur (utilisé si offline ou si host).">c_joueurs</a>[i].socket(), <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Fin de transmition de map</span>
<a name="l02458"></a>02458         }
<a name="l02459"></a>02459     }
<a name="l02460"></a>02460 
<a name="l02461"></a>02461     strcpy(<a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <span class="stringliteral">&quot;0:end&quot;</span>);
<a name="l02462"></a>02462     <a class="code" href="classpartie.html#aa295d96006105768e1055d8459e71736">c_server</a>-&gt;<a class="code" href="classbase_client_server.html#afaeac42db5822c4582e54e51daaa35a8" title="Envoie un message (buffer) au client.">send_message</a>( s, <a class="code" href="classpartie.html#a0741ebdd0b38350980e684a78aebf17c" title="Buffer pour communiquer sur le réseau.">c_buffer</a>, <a class="code" href="classpartie.html#a4c2100881d9d60a63ca98c9b69f3605aafc64c3c0ad061e820d9d6dd2e268b4be">PACK_bufferSize</a>);<span class="comment">// Fin de transmition</span>
<a name="l02463"></a>02463 
<a name="l02464"></a>02464     <a class="code" href="classpartie.html#a755a69e104dc7c643a5bb687e6281e2f">c_listPlayerRefresh</a>.push_back(idJoueur);
<a name="l02465"></a>02465 }
<a name="l02466"></a>02466                                                                                                                                                                                                                                                                                   
</pre></div></div>
</div>
<hr class="footer"/><address class="footer"><small>Généré le Fri Jan 21 2011 01:21:27 pour Bomberman par&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>
